2017-08-29 5 views
0
Order_ID 
========= 
id price 
A 10 
A 10 
B 20 
B 20 
C 30 
C 30 
D 40 
D 40 

Client 
================== 
Client Name id 
1 ClientInc. A 
1 ClientInc. A 
1 ClientInc. B 
1 ClientInc. B 
1 ClientInc. C 
1 ClientInc. C 
1 ClientInc. D 
1 ClientInc. D 

J'ai deux tables que je dois joindre (Order_ID et client) et que vous voulez résumer le prix par ORDER_ID distinct et créer le rapport ci-dessous:SOMME SUR LA VALEUR DISTINCT REJOIGNEZ

Desired Solution 
========================   
id Name Sum(Price) 
1 ClientInc. 100 

C'est le requête en cours J'utilise:

SELECT merchant, 
name, 
SUM(price) 
FROM order_id a 
JOIN client b 
ON a.id = b.id 
GROUP BY merchant, name 

Il affiche la sortie suivante en résumant tous les order_id, mais le problème est que je veux soms par numéro de commande distinct:

Current Wrong Report 
======================  
id Name Sum(Price) 
1 ClientInc. 200 
+0

Que voulez-vous que le résultat soit si le même identifiant a deux prix différents? –

+0

Utilisez le mot-clé DISTINCT –

+0

Quels sont les [SGBD] (https://fr.wikipedia.org/wiki/Database) utilisez-vous? Postgres? Oracle? DB2? Oiseau de feu? –

Répondre

0
SELECT merchant, 
     name, 
     SUM(price) 
FROM (SELECT DISTINCT id,price 
     FROM order_id 
    ) a 
JOIN client b 
ON a.id = b.id 
GROUP BY merchant, name;