Améliorez les calculs de date à l'aide de l'opérateur AND
P粉554842091
P粉554842091 2024-03-22 12:11:14
0
1
331

Je suis sûr que c'est une solution facile, mais je ne la trouve nulle part. J'essaie d'utiliser AND pour influencer les résultats d'une requête. La requête est la suivante.

select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
from table1
where log_in < date_opened;

La première requête fonctionne donc correctement. Cela ne me donne que les lignes où la date de connexion est inférieure à date_opened, puis la différence totale de jours entre les deux, ce qui est génial. Cependant, je souhaite ajouter AND à la requête pour exclure certains totaux. Par exemple, l'exemple suivant :

select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
from table1
where log_in < date_opened and date_diff > 1;

Le problème est que la colonne alias date_diff n'est pas reconnue comme une vraie colonne, je reçois donc un message d'erreur. J'ai essayé d'utiliser HAVING au lieu de AND, mais cela ne fonctionne pas (ce n'est pas ce que je pensais). Je veux essentiellement exclure les lignes avec des zéros. Est-ce que quelqu'un sait ce que j'utiliserais à la place de « and date_diff > 1 » ?

P粉554842091
P粉554842091

répondre à tous(1)
P粉308089080

Répétez l'expression dans la clause Where (c'est-à-dire utilisez datediff(log_in, date_opened) > 1 而不是 date_diff > 1) ou utilisez une table dérivée, puis ajoutez la condition dans la requête englobante.

Exemple d'utilisation d'une table dérivée :

select first_name, log_in, date_opened, date_diff
from (
    select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
    from table1
    where log_in  1
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal