簡體   English   中英

用不同的外鍵連接多個表 SQL

[英]Connecting multiple tables with different foreign keys SQL

我正在努力尋找有關如何連接 5 個不同表但具有不同外鍵的解決方案。 該表看起來像這樣:

數據庫示例

我需要編寫一個查詢來返回所有客戶的訪問成本和付款差異(債務或多付)以及選定日期的最后付款日期:

SELECT 客戶 ID、姓名、姓氏、SUM(訪問費 + 材料價格總和 + 服務總和)- SUM(付款金額)AS pay_diff、MAX(payment_date)日期介於(上個月)和(今天)之間

在 01-07-2021 和今天之間選擇的預期輸出: 在此處輸入圖片說明

更新:我的 SQL 表和數據庫響應:

顧客

在此處輸入圖片說明

customer_visit

在此處輸入圖片說明

訪問服務

在此處輸入圖片說明

訪問_材料

在此處輸入圖片說明

customer_payments:

在此處輸入圖片說明

查詢計算:

在此處輸入圖片說明

select c.ID, c.Name, c.Surname
sum(cv.visit_fee) + sum(vm.Price_sum) + sum(vs.Service_sum) - sum(cp.Payment_amount) as pay_diff, max(payment_date)
from customer c
left join customer_visit cv
on c.ID = cv.customer_id
left join Visit_materials vm
on cv.ID = vm.Visit_ID
left join Visit_services vs
on cv.ID = vs.Visit_ID
left join Customer_payment cp
as c.ID = cp.Customer_id
where Payment_date >= '01-07-2021' 
group by c.ID, c.Name, c.Surname

我注意到列名不一致(圖表與表樣本),您可能需要根據實際數據庫進行調整。 如果您有未來的日期數據,您可以在 where 子句中使用 '01-07-2021' 和 'xx-xx-2021' 之間。 我希望它有幫助。 如果出現錯誤,您可以發布錯誤消息的屏幕截圖嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM