Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
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

5 réponses

Avatar
Alain Montfranc
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 ?
Avatar
Anthony
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
Avatar
Alain Montfranc
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
Avatar
Alain Montfranc
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
Avatar
Anthony
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