1 votes

SELECT id_field WHERE max(date_field) < "some date" (une date)

Je suis sûr que cette question est évidente, mais cela fait environ une heure que je m'amuse avec un ensemble de sous-requêtes de plus en plus complexe et je n'arrive à rien.

J'ai besoin de sélectionner un groupe d'ID dans une table où la dernière date de l'enregistrement est antérieure à une date donnée. J'ai essayé :

SELECT id_field WHERE max(date_field) < 'some date'

Mais obtenir "ne peut pas avoir d'agrégat dans un champ". J'ai envisagé la possibilité de SELECT où il n'y a aucune date au-dessus d'une certaine date, mais à ce stade, mon cerveau agite son petit drapeau blanc.

Merci.

3voto

dcp Points 26928
SELECT id_field
     , max(date_field)
  FROM tbl
GROUP BY id_field
HAVING max(date_field) < 'some date'

2voto

Paulo Santos Points 8148
SELECT id_field 
  FROM tbl 
 GROUP BY id_field 
HAVING max(date_field) < 'some date'

0voto

Seva Alekseyev Points 31812

Utilice HAVING au lieu de WHERE . HAVING est comme un où pour les valeurs groupées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X