Regrouper des lignes en une seule
Résolu
drenfa
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
drenfa Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
drenfa Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un problème avec une requête SQL, je souhaite regrouper plusieurs lignes en 1 seules avec un SUM.
Voici la requête SQL je vous passe le
Pour l'instant j'ai:
client article quantité prix date
client1 a1 2 50 2021/02/01
client1 a1 4 100 2021/02/01
Je souhaite
client article quantité prix date
client1 a1 6 150 2021/02/01.
Merci de votre aide.
PS: je suis sur SQL SERVER 2019
Voici la requête SQL je vous passe le
FROMet le
Where:
SELECT comptet.CT_Classement AS CLIENT ,docligne.ar_ref as REFERENCE_ARTICLE ,DL_Design as DESIGNATION_ARTICLE ,(CASE WHEN convert(date,convert(varchar(10),DO_DateLivr,103)) < convert(date,convert(varchar(10),CURRENT_TIMESTAMP,103)) then ( --datepart(week, DO_DateLivr) < datepart(week, CURRENT_TIMESTAMP) and year(DO_DateLivr) <= year(CURRENT_TIMESTAMP) case when year(DO_DateLivr) < year(CURRENT_TIMESTAMP) then SUM(convert(int,docligne.DL_QteBC)) else ( case when DATEPART(week, DO_DateLivr) < datepart(week, CURRENT_TIMESTAMP) then SUM(convert(int,docligne.DL_QteBC)) else 0 end ) end ) else 0 end) as QUANTITE ,(CASE WHEN convert(date,convert(varchar(10),DO_DateLivr,103)) < convert(date,convert(varchar(10),CURRENT_TIMESTAMP,103)) then ( --datepart(week, DO_DateLivr) < datepart(week, CURRENT_TIMESTAMP) and year(DO_DateLivr) <= year(CURRENT_TIMESTAMP) case when year(DO_DateLivr) < year(CURRENT_TIMESTAMP) then SUM(docligne.DL_MontantHT) else ( case when DATEPART(week, DO_DateLivr) < datepart(week, CURRENT_TIMESTAMP) then SUM(docligne.DL_MontantHT) else 0 end ) end ) else 0 end) as prix ,CONVERT(date,convert(varchar(10),date_livraison.min_date,103)) as DATE from ... where ... group by comptet.CT_Classement ,docligne.AR_Ref ,min_date ,DL_Design ,DO_DateLivr
Pour l'instant j'ai:
client article quantité prix date
client1 a1 2 50 2021/02/01
client1 a1 4 100 2021/02/01
Je souhaite
client article quantité prix date
client1 a1 6 150 2021/02/01.
Merci de votre aide.
PS: je suis sur SQL SERVER 2019
A voir également:
- Sql regrouper plusieurs lignes en une seule
- Regrouper plusieurs feuilles excel en une seule - Guide
- Comment regrouper plusieurs pdf en un seul - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Partager photos en ligne - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
4 réponses
Bonjour,
J'ai déplacé ta question dans le bon forum.
Et en ce qui concerne ta question, pourquoi ne ferais tu pas un sous select ?
En gros
J'ai déplacé ta question dans le bon forum.
Et en ce qui concerne ta question, pourquoi ne ferais tu pas un sous select ?
En gros
SELECT CLIENT, REFERENCE_ARTICLE,DESIGNATION_ARTICLE, SUM(QUANTITE) as QTE, SUM(prix) as PRIX, DATE FROM ( ta requête actuelle ) T GROUP BY CLIENT
Bonjour Jordan, je te remercie de ta réponse mais dans ma requête j'ai déjà une sous requête pour récupérer la date minimal d'un article, je ne sais pas si faire une sous-requête dans une sous-requête à un impact sur les performances du serveur. Est ce le cas ?
En tout cas faire une sous requête pour calculer les différents montant fonctionne. Je vais regarder si les résultats sont cohérent avec les résultats attendus