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