[mysql] requête MIN() et MONTH()

Le
Anthony
J'ai testé une requête de ce type :

SELECT * FROM ma_table WHERE MONTH(MIN(date))='12'

donc en gros, où le mois de la date la plus petite serait 12.

bah ça ne marche pas auriez vous une solution assez simple pour ce
type de requête pour éviter de faire un select imbriqué.

bien à vous,

Anthony
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alain Montfranc
Le #21897621
Anthony a écrit
J'ai testé une requête de ce type :

SELECT * FROM ma_table WHERE MONTH(MIN(date))='12'

donc en gros, où le mois de la date la plus petite serait 12.

bah ça ne marche pas... auriez vous une solution assez simple pour ce type de
requête pour éviter de faire un select imbriqué.

bien à vous,

Anthony



Ca peu pas marcher... Le MIN est une fonction d'aggregat

En plus je ne comprend pas trop ce que tu veux faire. Si ta plus
"petite" date est en mars tu n'auras aucun resultat....

Que veux tu sortir exactement ?
Anthony
Le #21897601
Alain Montfranc a écrit :

Ca peu pas marcher... Le MIN est une fonction d'aggregat

En plus je ne comprend pas trop ce que tu veux faire. Si ta plus
"petite" date est en mars tu n'auras aucun resultat....

Que veux tu sortir exactement ?





en fait j'ai une liste d'évènements ( table evenn ) avec plusieurs dates
( table dates ).

j'ai une boucle qui parcours chaque mois.

A l'intérieur je demande a afficher les évènements de tel mois... ( en
fait avec une jointure de la table evenn et de la table dates ).

Mais je veux que l'évènement n'apparaisse qu'une fois dans le mois le
plus petit.

En gros, si un évènement à une date en janvier et en février, je veux
qu'il n'apparaisse qu'en janvier.

cordialement,

Anthony
Alain Montfranc
Le #21897591
Anthony a écrit
Alain Montfranc a écrit :

Ca peu pas marcher... Le MIN est une fonction d'aggregat

En plus je ne comprend pas trop ce que tu veux faire. Si ta plus "petite"
date est en mars tu n'auras aucun resultat....

Que veux tu sortir exactement ?





en fait j'ai une liste d'évènements ( table evenn ) avec plusieurs dates (
table dates ).

j'ai une boucle qui parcours chaque mois.

A l'intérieur je demande a afficher les évènements de tel mois... ( en fait
avec une jointure de la table evenn et de la table dates ).

Mais je veux que l'évènement n'apparaisse qu'une fois dans le mois le plus
petit.

En gros, si un évènement à une date en janvier et en février, je veux qu'il
n'apparaisse qu'en janvier.

cordialement,

Anthony



Ok

tu dois pouvoir t'en tirer avec un truc du genre :

select evenement
from dates, evenn
wehre <jointure dates, evenn>
group by month(date)
having month(date) = 12
Alain Montfranc
Le #21897581
Anthony a écrit
Alain Montfranc a écrit :

Ca peu pas marcher... Le MIN est une fonction d'aggregat

En plus je ne comprend pas trop ce que tu veux faire. Si ta plus "petite"
date est en mars tu n'auras aucun resultat....

Que veux tu sortir exactement ?





en fait j'ai une liste d'évènements ( table evenn ) avec plusieurs dates (
table dates ).

j'ai une boucle qui parcours chaque mois.

A l'intérieur je demande a afficher les évènements de tel mois... ( en fait
avec une jointure de la table evenn et de la table dates ).

Mais je veux que l'évènement n'apparaisse qu'une fois dans le mois le plus
petit.

En gros, si un évènement à une date en janvier et en février, je veux qu'il
n'apparaisse qu'en janvier.

cordialement,

Anthony



Oups, j'ai repondu un peu vite. En fait tu veux faire une condition sur
l'aggregat. Ca va donc donner un truc duu style

select month(min(dates.date)), xxxx
from evenn, dates
where <jointure dates, evenn>
group by dates.date
having month(min(dates.date)) = 12
Anthony
Le #21897571
Alain Montfranc a écrit :

Oups, j'ai repondu un peu vite. En fait tu veux faire une condition sur
l'aggregat. Ca va donc donner un truc duu style

select month(min(dates.date)), xxxx
from evenn, dates
where <jointure dates, evenn>
group by dates.date
having month(min(dates.date)) = 12





merci :-) je vais tester ça en soirée.

anthony
Publicité
Poster une réponse
Anonyme