2016-10-03 3 views
1

ich eine Abfrage geschrieben, wie unten erwähnt:können wir zwei Funktionen erzeugt Summe in derselben Abfrage in Postgres

select 
    sum(co.BOMParentQty) as hiredqty, 
    cy.dehireqty as dehire, 
    cy.M_product_id, 
    co.Project_Prod 
from c_order co 
    inner join M_CycleDays cy ON (co.Project_Prod :: numeric = cy.M_product_id) 
where co.c_doctype_id = 1000600 
    AND co.Project_Prod = '1000470' 
group by cy.M_product_id, co.Project_Prod, dehire 

es gibt mir Ausgang für zwei Zeilen, aber ich möchte nur einzelne Zeilen mit der Summe von dehireqty wenn ich setze Summenfunktion für dehire Menge Spalte dann bringt es zweimal tatsächliche Ausgabe ohne Summe der dehireqty Spalte ist (zwei Einträge):

6.00;2.00;1000470;"1000470" 
6.00;3.00;1000470;"1000470" 

nach Put-Summenfunktion für dehireqty Spalte:

12.00;15.00;1000470;"1000470" 

Aber eigentlich will ich:

6.00;5.00;1000470;"1000470" 

Wie kann ich dieses Ergebnis zu erhalten?

Antwort

1

einfach Ihre Abfrage machen eine Unterabfrage und Summe-up dehireqty in Außen-Abfrage:

SELECT 
    hiredqty, 
    SUM(dehire) AS dehireqty, 
    M_product_id, 
    Project_Prod 
FROM (
    select 
     sum(co.BOMParentQty) as hiredqty, 
     cy.dehireqty as dehire, 
     cy.M_product_id, 
     co.Project_Prod 
    from c_order co 
     inner join M_CycleDays cy ON (co.Project_Prod :: numeric = cy.M_product_id) 
    where co.c_doctype_id = 1000600 
     AND co.Project_Prod = '1000470' 
    group by cy.M_product_id, co.Project_Prod, dehire 
) AS subquery Group by hiredqty,M_product_id,Project_Prod; 
Verwandte Themen