Compter nb article/jour dans un mois
Résolu/Fermé
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
-
28 mai 2013 à 15:52
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 30 mai 2013 à 15:18
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 30 mai 2013 à 15:18
A voir également:
- Compter nb article/jour dans un mois
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Comment récupérer un compte facebook piraté - Guide
- Mettre à jour ses pilotes - Guide
- Créer un compte instagram - Guide
3 réponses
Mihawk
Messages postés
4313
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
845
29 mai 2013 à 15:02
29 mai 2013 à 15:02
Hello,
Comment stockes-tu les mois, et surtout les jours de chaque mois dans ta base ?
De prim'abord, je dirais que les SUM sont inutiles, et qu'un GROUP BY sur les jours te donneras ce qu'il te faut
Comment stockes-tu les mois, et surtout les jours de chaque mois dans ta base ?
De prim'abord, je dirais que les SUM sont inutiles, et qu'un GROUP BY sur les jours te donneras ce qu'il te faut
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
29 mai 2013 à 15:15
29 mai 2013 à 15:15
Disons que pour chaque production, j'ai une ligne dans ma table. Les dates sont entières au format yyyy-mm-dd
Le group by sur la date me donne bien ce que je veux, le problème, c'est que je suis obligé d'utiliser cette "structure" avec un case pour chaque mois car j'ai une deuxieme partie de la requete qui utilise ce systeme et pour la quelle je divise le résultat par ce que je cherche à faire.
J'ai simplifié la table pour cibler ma demande.
J'ai normalement d'autre champ, dont le numéro de lancement, pour le quel je fais un count dans chaque case when, et que je sum ensuite dans la requete plus bas
En gros j'ai ca :
with tabtemp(machine, famille, jan, jjan, fev, jfev, ... dec) as
(SELECT machine, famille,
case when month(date) = 1 then [nombre d'article par jours pour chaque jour dans le mois] else 0 end,
case when month(date) = 1 then count(numero lancement) else 0 end,
case when month(date) = 2 then [nombre d'article par jours pour chaque jour dans le mois] else 0 end,
case when month(date) = 2 then count(numero lancement) else 0 end,
etc ...
from lancement
group by machine, famille, date
)
select machine, famille, sum(jan)/sum(jjan) as janvier, sum(fev)/sum(fev) as fevrier, etc...
from tabtemp
group by grouping sets(machine, (machine, famille))
Enfaite je fais une matrice et le la "lisse" avec le sum pour chaque mois
Le group by sur la date me donne bien ce que je veux, le problème, c'est que je suis obligé d'utiliser cette "structure" avec un case pour chaque mois car j'ai une deuxieme partie de la requete qui utilise ce systeme et pour la quelle je divise le résultat par ce que je cherche à faire.
J'ai simplifié la table pour cibler ma demande.
J'ai normalement d'autre champ, dont le numéro de lancement, pour le quel je fais un count dans chaque case when, et que je sum ensuite dans la requete plus bas
En gros j'ai ca :
with tabtemp(machine, famille, jan, jjan, fev, jfev, ... dec) as
(SELECT machine, famille,
case when month(date) = 1 then [nombre d'article par jours pour chaque jour dans le mois] else 0 end,
case when month(date) = 1 then count(numero lancement) else 0 end,
case when month(date) = 2 then [nombre d'article par jours pour chaque jour dans le mois] else 0 end,
case when month(date) = 2 then count(numero lancement) else 0 end,
etc ...
from lancement
group by machine, famille, date
)
select machine, famille, sum(jan)/sum(jjan) as janvier, sum(fev)/sum(fev) as fevrier, etc...
from tabtemp
group by grouping sets(machine, (machine, famille))
Enfaite je fais une matrice et le la "lisse" avec le sum pour chaque mois
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
30 mai 2013 à 15:18
30 mai 2013 à 15:18
J'ai finalement trouvé une alternative car cela n'était pas possible dans la configuration actuelle !
Merci quand même ;-)
Merci quand même ;-)