[ SQL ] Regrouper et sommer plusieurs lignes selon critères

Regrouper et sommer plusieurs lignes selon critères [ SQL ] - SQL/NoSQL - Programmation

Marsh Posté le 20-07-2005 à 13:21:05    

Bonjour,
 
Je travaille sur l'impression d'un bon de réception et pour celà j'ai besoin d'interroger l'historique de ma base.
 
Il faut savoir que mon stock possède de nombreuse entrées donc la commande SQL suivante donne des résultats très longs.
 
Exemple :
 
SELECT hictr,hiqte,hitype FROM historique where hicam='C000' order by hictr asc
 
donne :
 
Fournisseur1  30  BienX
Fournisseur1  40  BienX
Fournisseur2  50  BienY
Fournisseur2  60  BienZ
Fournisseur3  70  BienY
Fournisseur3  80  BienY
 
 
Ce que je souhaite, c'est pouvoir regrouper et sommer les lignes d'un même fournisseur ET d'un même bien.
 
Donc avoir le résultat :
 
Fournisseur1  70  BienX
Fournisseur2  50  BienY
Fournisseur2  60  BienZ
Fournisseur3 150  BienY
 
J'ai bien pense à un sum d'un côté et un group by de l'autre mais je ne vois pas trop comment associer les deux  :sweat:  
 
Est-ce possible en une seule requête ? Comment faire ?
 
Merci :)


Message édité par jeoff le 20-07-2005 à 13:22:25
Reply

Marsh Posté le 20-07-2005 à 13:21:05   

Reply

Marsh Posté le 20-07-2005 à 13:46:53    

SELECT hictr, hitype, SUM(hiqte)
FROM historique
WHERE hicam='C000'
GROUP BY hictr, hitype
ORDER BY hictr ASC;
 
C'est le principe même du group by, le fait de faire un SUM ou COUNT, etc.

Reply

Marsh Posté le 20-07-2005 à 14:04:21    

Ca fonctionne, merci beaucoup :)
 
J'étais pas tombé loin, il suffisait que j'inverse la section "group by" avec "order by" dans ma requête de test (placé dans le mauvais ordre)


Message édité par jeoff le 20-07-2005 à 14:04:54
Reply

Marsh Posté le 20-07-2005 à 16:45:58    

J'aurais une autre question, je vais éviter de recréer un topic.
 
En fait je voudrais faire un tri plus évolué que "order by champs asc/desc". Ceux-ci allant de A à Z / Z à A.
 
Un tri de la lettre D à la lettre C par exemple :
DEFGHIJK...ZABC
 
Est-ce possible ?
 
Merci :)

Reply

Marsh Posté le 20-07-2005 à 18:09:52    

Faudrait sûrement des expressions régulières pour faire ça.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 20-07-2005 à 18:14:58    

Au rique de passer pour un débile, c'est quoi que tu appelles "expression régulière" ? merci :)

Reply

Marsh Posté le 20-07-2005 à 18:25:30    

http://www.regular-expressions.info/
 
Mais en fait j'ai mal lu ce que tu as dit, donc ça ne servirait à rien ici. Je doute que ce que tu demandes soit faisable rien qu'avec une requête.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

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