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