2017-06-13 72 views
0

我已經在這一段時間了,現在正在嘗試編寫另一個子查詢來減去[總合同] - [總成本]。這兩個子查詢都運行良好,但我無法再編寫另一個子查詢,以便爲所需的[利潤]列減去兩個子查詢。大多數情況下,我嘗試的查詢只是返回說子查詢返回多個值。任何幫助,非常感謝!這是我到目前爲止有:有很多訂單的原始工作

SELECT MAN_PROD_ORDER.PROD_ORDER_NUM, 
(SELECT SUM(SAL_SALES_ORDER.AMOUNT_INCLUDING_TAX) 
FROM SAL_SALES_ORDER 
WHERE (SAL_SALES_ORDER.ORIG_SALES_ORDER_ID = MAN_PROD_ORDER.SALES_ORDER_ID or SAL_SALES_ORDER.SALES_ORDER_ID = MAN_PROD_ORDER.SALES_ORDER_ID) 
     and SAL_SALES_ORDER.SAL_ORDER_STATUS_ID not in (6, 8)) as [total contract], 
(SELECT SUM(PROD_ORDER_LEDGER_ENTRY.TOTAL_COST) 
FROM PROD_ORDER_LEDGER_ENTRY 
WHERE MAN_PROD_ORDER.PROD_ORDER_ID = PROD_ORDER_LEDGER_ENTRY.PROD_ORDER_ID AND PROD_ORDER_LEDGER_ENTRY.ENTRY_TYPE_ID = 1) as [total cost] 
FROM MAN_PROD_ORDER 
+0

請儘量strucutre你的sql語句 - 將會方式更容易閱讀每個人 –

+0

和看看最基本的東西之一: https://blogs.msdn.microsoft.com/craigfr/2006/07/19/introduction-to-joins/ –

+0

抱歉。我沒有意識到它會按照它的方式出現......下次會做得更好! – Mike

回答

0

應該以某種方式工作是這樣的:

SELECT MAN_PROD_ORDER.PROD_ORDER_NUM 
     ,SUM(SAL_SALES_ORDER.AMOUNT_INCLUDING_TAX) AS total_contract 
     ,SUM(PROD_ORDER_LEDGER_ENTRY.TOTAL_COST) AS total_cost 
     ,SUM(SAL_SALES_ORDER.AMOUNT_INCLUDING_TAX - PROD_ORDER_LEDGER_ENTRY.TOTAL_COST) as profit 
    FROM MAN_PROD_ORDER 
    LEFT OUTER JOIN SAL_SALES_ORDER 
    ON (SAL_SALES_ORDER.ORIG_SALES_ORDER_ID = MAN_PROD_ORDER.SALES_ORDER_ID OR 
     SAL_SALES_ORDER.SALES_ORDER_ID  = MAN_PROD_ORDER.SALES_ORDER_ID) 
    AND SAL_SALES_ORDER.SAL_ORDER_STATUS_ID NOT IN (6, 8) 
    LEFT OUTER JOIN PROD_ORDER_LEDGER_ENTRY 
    ON MAN_PROD_ORDER.PROD_ORDER_ID = PROD_ORDER_LEDGER_ENTRY.PROD_ORDER_ID 
    AND PROD_ORDER_LEDGER_ENTRY.ENTRY_TYPE_ID = 1 
GROUP BY MAN_PROD_ORDER.PROD_ORDER_NUM 
相關問題