2012-10-29 2 views
2

J'ai ce code:groupe PostgreSQL par avec la somme

SELECT m_warehouse_id, qtyonhand 
FROM adempiere.rv_storage 
WHERE rv_storage.m_product_id=1000412 
GROUP BY m_warehouse_id, qtyonhand 
ORDER BY m_warehouse_id; 

qui se traduit dans le tableau suivant:

Maintenant, je veux groupe par m_warehouse_id il retournera seulement 2 rangs 1000000 et 1000001. qtyonhand sera sumarized et retourné comme somme. Donc, la table devrait ressembler à:

m_warehouse_id | qtyonhand 
------------------+--------------- 
10000000   |   0 
10000001   |   10 

Comment y parvenir?

Répondre

9

vous devez utiliser la fonction d'agrégation SUM() et les groupés par m_warehouse_id

SELECT m_warehouse_id, SUM(qtyonhand) totalQuantity 
FROM adempiere.rv_storage 
WHERE rv_storage.m_product_id=1000412 
GROUP BY m_warehouse_id 
ORDER BY m_warehouse_id; 
+1

J'ai passé ans regardant la sql dans la question et ne pouvait pas comprendre pourquoi le groupe ne parvenait pas :-) –

+1

Avoir la bonne réponse dans 1 minute? Voilà pourquoi vous avez 33k merci frère J'espère que vous passez une bonne journée –