簡體   English   中英

SQL Server 2005一個查詢計算兩個表

[英]SQL Server 2005 One query to calculation two table

我是SQL Server的初學者

我在數據庫醫院有三張桌子

  1. PatientFiles
  2. 其他服務
  3. PatientDeposit

兩個查詢顯示我的結果

  • 查詢第一。 顯示PatientFilesID,TotalOtherServices

     SELECT pf.ID AS PatientFileID, SUM(os.Quantum * os.Price) AS TotalOtherServices FROM PatientsFiles pf INNER JOIN OtherServices os ON pf.ID = os.Patient_File_ID WHERE pf.ID = '14' GROUP BY pf.ID 

這是真實的結果

    PatientFileID  | TotalOtherServices
        14                194.00
  • 查詢號碼二。 顯示PatientFilesID,TotalPatientDeposit

     SELECT pd.Patient_File_ID AS PatientFileID, SUM(pd.Deposit) AS TotalPatientDeposit FROM PatientsDeposits pd WHERE pd.Patient_File_ID = '14' GROUP BY pd.Patient_File_ID 

這是真實的結果

    PatientFileID | TotalPatientDeposit
        14               450.00
  • 我非常厭倦混合兩個查詢

     SELECT pf.ID AS PatientFileID, SUM(os.Quantum * os.Price) AS TotalOtherServices, SUM(pd.Deposit) AS TotalPatientDeposit FROM PatientsFiles pf INNER JOIN OtherServices os ON pf.ID = os.Patient_File_ID INNER JOIN PatientsDeposits pd ON pf.ID = pd.Patient_File_ID WHERE pf.ID = '14' GROUP BY pf.ID 

這是錯誤的結果

    PatientFileID  | TotalOtherServices | TotalPatientDeposit
         14                  582.00         1350.00

謝謝你提前幫助我

Select pf.ID as PatientFileID,
    os.TotalOtherServices,
    pd.TotalDeposit
From PatientFiles pf
    Left Join
 (Select Patient_File_ID as PatientfileID, SUM(os.Quantum * os.Price) AS TotalOtherServices
  From OtherServices Group By Patient_File_ID) os on pf.PatientFileID = os.PatientFileID
    Left Join
 (Select Patient_File_ID AS PatientFileID, SUM(Deposit) AS TotalPatientDeposit
  From PatientsDeposits Group By Patient_File_ID) pd on pf.PatientFileID = pd.PatientFileID

快速瀏覽一下,看起來價值比預期大3倍。
(194 * 3 = 582,450 * 3 = 1350)。

此外,在您的第二個查詢中,您沒有使用INNER JOIN

SELECT pf.ID AS PatientFileID, 
SUM(pd.Deposit) AS TotalPatientDeposit
FROM PatientsFiles pf INNER JOIN PatientsDeposits pd
ON pf.ID = pd.Patient_File_ID
WHERE pd.Patient_File_ID = '14'
GROUP BY pd.Patient_File_ID

我知道這不是答案,而是更多應該檢查的事情。

暫無
暫無

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

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