2017-06-13 4 views
0

私は今これをしており、[総契約] - [総費用]を引く別のサブクエリを作成しようとしています。これらのサブクエリはどちらもうまく動作しますが、私は[profit]の目的の列に対して両方のサブクエリを減算する別のサブクエリを書くことができませんでした。たいていの場合、サブクエリが複数の値を返すと返すだけのクエリです。どんな助けもありがとうございます!多くのご注文をいただいている元の仕事

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

あなたのSQLをstrucutreしてみてください - 誰も –

+0

ために読んで、見てする方法が容易になります最も基本的なものの1つ: 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 
関連する問題