簡體   English   中英

SQL查詢使用求和函數聯接多個表

[英]SQL Query to Join Multiple Tables with Sum Function

我需要合並5個表:

history - (contract_no, run_date, dataset_code)
premium - (contract_no, trx_amt)
contract - (contract_no, status, owner_idn)
confund - (contract_no, blg_method, blg_status)
client - (client_idn, client_ssn)

最終,我希望結果顯示如下:

合同號| 運行日期| DataSet_Code | 現狀 Blg_Method | Blg_Status | Suspense_Total

我最大的問題是使SUM功能正常工作。 溢價表中的trx_amt是我獲得懸念總額的地方。 合同可以有很多行。 同樣,在該表中,trx_amt可以來自contract_no或client_ssn。

SELECT history_contract_no, 
       history_run_date, 
       history_dataset_code, 
       contract_status, 
       confund_blg_method,
       confund_blg_status,
       SUM(premium_trx_amt)  

FROM   HISTORY LEFT JOIN PREMIUM
ON     history_contract_no = premium_contract_no JOIN CONFUND 
ON     history_contract_no = confund_contract_no JOIN CONTRACT
ON     confund_contract_no = contract_contract_no  

WHERE  history_dataset_code in ('CONTINU1', 'CONTINU2')
AND    history_run_date between 20140118 and 20140124

GROUP BY history_contract_no

沒有上面的SUM函數,我可以關閉,但是如果一個合同有一個以上的暫記項,我將得到多行。 我無法弄清楚如何在結果中匯總這些行。 我什至無法弄清楚如何引入第五個表“ client”,這樣我就可以總結位於client_ssn上而不在contract_no下的懸念條目。 premium字段中的contract_no是SSN或contract_no。

我剛接觸SQL(幾個月),我真的很想做更復雜的查詢,因此,如果您知道一個好的資源或教程,請告訴我。

謝謝!

為了使用Sum函數,您需要在查詢中包含“ Group By”子句。

嘗試這樣的事情:

SELECT history_contract_no, 
       history_run_date, 
       history_dataset_code, 
       contract_status, 
       confund_blg_method,
       confund_blg_status,
       SUM(premium_trx_amt)  

FROM   HISTORY LEFT JOIN PREMIUM
ON     history_field = premium_contract_no JOIN CONFUND 
ON     history_field = confund_contract_no JOIN CONTRACT
ON     confund_contract_no = contract_contract_no

WHERE  history_dataset_code in ('CONTINU1', 'CONTINU2')
AND    history_run_date between 20140118 and 20140124

GROUP BY history_contract_no
, history_run_date
, history_dataset_code
, contract_status
, confund_blg_method
,confund_blg_status

如果您也想加入client表,請查找該表中哪個字段與感興趣的表相關。

暫無
暫無

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

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