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 » ?
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 :