2015-10-07 72 views
0

如何獲得提供從表收集的Collection.Amount總和,有沒有對所有JId項目,但只適用於那些JId具有對他們的一些支付左加入到獲得列的總和在第二個表

ALTER PROCEDURE dbo.test 
AS 
select JobCard.JId, sum(cast(isnull(Collection.Amount, 0) as bigint)) as [Amount] 
from JobCard left join Collection on JobCard.JId=Collection.JId 
group by JobCard.JId, Collection.Amount 
order by JobCard.JId 
+0

那麼你的查詢有什麼問題? –

回答

1

GROUP BY條款改爲:

group by JobCard.JId 
+0

是的,這是正確的。 – pedram

+0

如果有幫助,您可以將其標記爲答案。 – laylarenee

+0

謝謝。接受了答案。 – insistent

2

我想你應該寫這樣的查詢,這會給你一個完美的結果。

ALTER PROCEDURE dbo.test 
AS 
    SELECT J.JId, 
      SUM(CAST(ISNULL(C.Amount, 0) AS BIGINT)) AS [Amount] 
    FROM JobCard J 
      LEFT JOIN COLLECTION C 
       ON J.JId = C.JId 
    GROUP BY 
      J.JId 
    ORDER BY 
      J.JId 

需要從group by子句中移除Collection.Amount。