我有一个查询,当所有表都填充数据时效果很好,但当其中一个表为空时,它不会返回预期结果。
查看行动中的问题:
http://sqlfiddle.com/#!9/3d7ca1/1
查询应该返回240
,因为我在120
有2个项目。
当___ApplicableTaxes
填充数据时,查询正在运行,但在我的实际情况中并非总是如此:
http://sqlfiddle.com/#!9/de1840/1
我的实际查询是:
SELECT BIL_Status
, SUM(BIL_Rate*BIL_Quantity) BIL_RateNonTaxed
, IFNULL(SUM((BIL_Rate*BIL_Quantity)+(BIL_Rate*BIL_Quantity*total_sales_tax/100)), SUM(BIL_Rate*BIL_Quantity)) BIL_RateTaxed
FROM
( SELECT b.*
, SUM(t.STX_Amount) total_sales_tax
FROM ___BillableDatas b
LEFT JOIN ___ApplicableTaxes bt
ON bt.ATX_BILId = b.BIL_Id
LEFT JOIN ___SalesTaxes t
ON t.STX_Id = bt.ATX_STXId
GROUP
BY ATX_BILId
) x
WHERE BIL_BookingId=1
GROUP
BY BIL_Status
我在这里失踪了什么?
感谢。