Sql 有许多订单的原始工作

Sql 有许多订单的原始工作,sql,Sql,我已经在这方面做了一段时间了,我正在尝试编写另一个子查询来减去[total contract]-[total cost]。这两个子查询都运行得很好,但我还无法编写另一个子查询来减去它们以得到所需的[profit]列。大多数情况下,我尝试的查询返回的只是子查询返回了多个值。。非常感谢您的帮助!到目前为止,我得到的是: SELECT MAN_PROD_ORDER.PROD_ORDER_NUM, (SELECT SUM(SAL_SALES_ORDER.AMOUNT_INCLUDING_TAX) FRO

我已经在这方面做了一段时间了,我正在尝试编写另一个子查询来减去[total contract]-[total cost]。这两个子查询都运行得很好,但我还无法编写另一个子查询来减去它们以得到所需的[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 

应该像这样工作:

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

请尝试构建您的SQLs,这对每个人来说都会更容易阅读,并且看看最基本的事情之一:对此感到抱歉。我没有意识到它会像它那样出现。。。下次会做得更好!