gpt4 book ai didi

SQL Server 2005 一查询计算二表

转载 作者:行者123 更新时间:2023-12-04 20:56:17 26 4
gpt4 key购买 nike

我是 SQL Server 的初学者

我在数据库医院有三张 table

  • 患者文件
  • 其他服务
  • 患者存款

  • 显示我的结果的两个查询
  • 查询一号。显示 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

    关于SQL Server 2005 一查询计算二表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3340788/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com