2016-07-14 10 views
1

Ich habe orders Tisch, order_details Tischmysql Summe Spalte mit der gleichen ID

Ich schließe orders Tisch mit order_details Tisch eine temporäre Tabelle zu machen, die diese aussehen

order_id | customer_id | Quantity | 
     2 |   2 | 10 | 
     2 |   2 | 25 | 
     2 |   2 | 5  | 
     2 |   2 | 15 | 
     3 |   2 | 25 | 

Was ich versuche zu erreichen ist Summe Quantity Spalte wo order_id ist gleich.

so das Ergebnis Ende wie diese Aussage

order_id | customer_id | Quantity | 
     2 |   2 | 55 | 
     3 |   2 | 25 | 

meine sql schauen, um hier auf diese aussehen

SELECT 
     orders.orders_id, 
     orders.customer_id_fk, 
     sum(order_detail.quantity) 
     FROM orders 
     LEFT JOIN order_detail on orders.orders_id = order_detail.orders_id_fk 
     WHERE customer_id_fk IN(2) <-- this is needed because I only want to see customer 2. 

wie kann ich auf die Summe einen Zustand versetzt?

+1

lieber Gebrauch Gruppe von order_id – dev

+0

Yep ich versagen, weil ich nach dem einen Auftrag hatte, und ich legte Gruppe nach dem Auftrag durch .... – codenoob

Antwort

1

Sieht aus, als ob Sie sehr nah sind!

Sie sollten von order_id zur Gruppe der Lage sein, OP eine Liste der einzigartigen order_id s mit der Quantity Summe für jede order_id

SELECT 
orders.orders_id, 
orders.customer_id_fk, 
sum(order_detail.quantity) 
FROM orders 
LEFT JOIN order_detail on orders.orders_id = order_detail.orders_id_fk 
WHERE customer_id_fk IN(2) 
GROUP BY orders.orders_id,orders.customer_id_fk 
1

Verwendung Gruppe von

SELECT 
     orders.orders_id, 
     orders.customer_id_fk, 
     sum(order_detail.quantity) 
     FROM orders 
     LEFT JOIN order_detail on orders.orders_id = order_detail.orders_id_fk 
     WHERE customer_id_fk IN(2) GROUP BY orders.orders_id,orders.customer_id_fk 
0

Hier ist zu bekommen. Entschuldigung, ich habe mich zurückgehalten. Ich habe GROUP BY nach Bestellung aufgegeben und es hat nicht funktioniert. das sovled es unter

SELECT 
     orders.orders_id, 
     orders.customer_id_fk, 
     sum(order_detail.quantity) 
     FROM orders 
     LEFT JOIN order_detail on orders.orders_id = order_detail.orders_id_fk 
     WHERE customer_id_fk IN(2) 
     GROUP BY orders_id 
     ORDER BY customer_id