0
我有3個表需要加入即表發票,項目和支付。表項目和支付將加入到表發票基於發票編號SUM返回錯誤的值時加入3表 - MS SQL
現在我需要得到SUM 的銷售,銷售成本和支付後按發票日期。
所以這是我的查詢
SELECT SUM((I.price * qty) - (I.price * qty * discount)) as totalSales,SUM((I.price * qty) - (I.price * qty * discount)-costItem) as salesAfterCost, SUM(PAY.amount) as paymentReceived
FROM tbl_inv B LEFT JOIN tbl_item I ON B.id = I.id_invoice
LEFT JOIN tbl_payment PAY ON B.id = PAY.id_invoice
WHERE B.dateInv = '2013-04-01'
GROUP BY B.id,b.dateInv;
並把結果返回這樣
totalSales salesAfterCost paymentReceived
75.540000 67.540000 622.8000
但是,當我與此查詢覈實,以獲取支付總額,它會與不同的價值迴歸。
SELECT SUM(PAY.amount) paymentReceived
FROM tbl_inv B LEFT JOIN tbl_payment PAY ON B.id = PAY.id_invoice
WHERE B.dateInv = '2013-04-01';
結果:
paymentReceived
155.7000
,查詢銷售
SELECT SUM((I.price * qty) - (I.price * qty * discount)) as totalSales,SUM((I.price * qty) - (I.price * qty * discount)-costItem) as salesAfterCost
FROM tbl_inv B LEFT JOIN tbl_item I ON B.id = I.id_invoice
WHERE B.dateInv = '2013-04-01';
結果:
totalSales salesAfterCost
37.770000 33.770000
我怎樣才能解決這個事情?
@Damien_The_Unbeliever是正確的。但是,如果您可以將付款加入發票上的特定項目,也可以解決。 – davmos 2013-05-01 07:17:49
@davmos - 考慮到付款乘以4,銷售額乘以2,我不認爲發票和付款之間存在1-1對應關係。 – 2013-05-01 07:20:33
當然@Damien_The_Unbeliever,但我沒有這麼說。我只是暗示了**發票上的項目**與付款之間的1-1關係的可能性。可能不可能,但我認爲我會把它放到混合中來幫助理解。 – davmos 2013-05-01 07:28:25