1
因此,我在此查询此查询,但无法弄清楚如何更改行为。基本上它应该从应用程序表中返回一组结果,支付表的总付款与相应的ID以及费用表中的总费用和相应的ID。当有一笔支付一笔费用时,它是完美的。但是,如果有两项费用,支付额似乎会增加一倍。我假设如果有3个费用,它会增加三倍,等等。左连接,其中有2个结果在一张表中,将相应表格的结果总和加倍。
我试着做总和(不同payments.amount)作为付款,但问题是,它是完全可能的,相同数量。我不确定是否有可能喜欢,做一个总和的地方有一个与数额相对应的独特ID ..我仍然在学习SQL。
select applications.*,
permits.title as permit,
sum(payments.amount) as payments,
sum(fees.unitprice) as fees
from applications
left join permits on applications.permitid=permits.id
left join payments on payments.appid=applications.id
left join fees on fees.appid=applications.id
where applications.deleted=0
and payments.deleted=0
and fees.deleted=0
and fees.unitPrice > 0
and applicationdate between '1975-1-1' and '2011-2-10'
group by applications.id
order by permits.deptid,permits.title,status,dateissued,applicationdate
任何帮助将不胜感激 - 我一直在试图解决这个问题好几个小时!为了弄清楚是什么导致了它,我带了几个。
太棒了!谢谢。我也对付款表做了同样的处理,所以我有两个子查询正在进行。效果很好,甚至不慢。上次我尝试做一个子查询时,我犯了一个错误,试图执行一个WHERE payments.appid = applications.id,但那不起作用,所以我放弃了。我必须记住现在如何做到这一点。再次感谢! – 2011-02-11 17:07:24