Requete avec somme sur valeur et filtre sur date

Requete avec somme sur valeur et filtre sur date - SQL/NoSQL - Programmation

Marsh Posté le 20-07-2009 à 15:55:38    

Salut a toutes et à tous,
 
J'ai une erreur sur la requète ci-dessous : je veux avoir le total par article et pour une date inférieure de 90 jours
Problème : si je ne mets pas le champs DeliveryNotes.ShippingDate dans mon GroupBy, Mysql me dit ne pas connaitre ce champ dans le HAVING, et moi j'en veux pas dans le groupby de ce champ
Dois_je faire une sous requète de sélection par date de tous mes mouvements d'abord ou y a-t-il une autre solution ?
 
Merci
 
SELECT DeliveryNotes.PartCode, Parts.PartName, Sum( DeliveryNotes.Quantity ) AS SumOfQuantity
FROM DeliveryNotes
LEFT JOIN Parts ON DeliveryNotes.PartCode = Parts.PartCode
GROUP BY DeliveryNotes.PartCode, Parts.PartName
HAVING ADDDATE( DeliveryNotes.ShippingDate, INTERVAL 90  
DAY ) >= CURDATE( )  

Reply

Marsh Posté le 20-07-2009 à 15:55:38   

Reply

Marsh Posté le 20-07-2009 à 15:58:28    

pourquoi tu ne le mets pas dans ton where, tout simplement ?  
il ne s'agit pas d'un agregat


---------------

Reply

Marsh Posté le 20-07-2009 à 16:04:04    

C'est un agregat justement, je fais la somme des Qté expédiées par Article et pour les mouvements inférieurs à 90 jours

Reply

Marsh Posté le 20-07-2009 à 16:08:33    

Tu as raison, des fois je vais chercher du compliqué quand on peut faire simple.
 
Réponse
 
SELECT DeliveryNotes.PartCode, Parts.PartName, Sum( DeliveryNotes.Quantity ) AS SumOfQuantity
FROM DeliveryNotes
LEFT JOIN Parts ON DeliveryNotes.PartCode = Parts.PartCode
WHERE ADDDATE( DeliveryNotes.ShippingDate, INTERVAL 90  
DAY ) >= CURDATE( )  
GROUP BY DeliveryNotes.PartCode, Parts.PartName
 
Merci pour le tuyau

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed