Bonjour,
Je fais fasse à un problème très probablement tout bête, mais j'ai le cerveau en marmelade, j'arrive pas à trouver de solution simple...
Je travaille avec Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64) Jul 5 2017 23:41:17 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Standard 6.3 <X64> (Build 14393: ) (Hypervisor)
Cependant je pense que la solution doit pouvoir se faire dans le SQL le plus standard qui soit.
J'ai deux tables, l'une contient des doublons, et l'autre contient des valeurs.
Je souhaite pouvoir calculer la somme des valeurs en dédoublonnant...
En gros :
Table CLIENT :
id nom flag 1 TOTO 0 1 TOTO 1 2 TITI 0 3 TATA 1
Table COMMANDE :
CLIENT_ID TOTAL 1 500 1 250 2 400 2 300 3 1000
Et la requête :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select client.id, sum(commande.total) from client inner join commande on commande.client_id = client.id group by client.id
Et c'est le drame : pour le client 1, j'ai 1500 au lieu de 750
J'ai naïvement tenté de diviser par COUNT(client.id) mais dans ce cas ça divise par le nombre de lignes jointes, soit 4... donc j'obtiens la moyenne des commande...
Et évidement COUNT(distinct client.id) ne ramène qu'un seul client par ligne donc j'ai le résultat initial.
Partager