千城hh 2021-02-21 18:28 采纳率: 33.3%
浏览 48

SQL server 第一个语句的查询结果依次带入第二个和第三个语句中,最后形成表?

Select Group_inspection_unit_ID From Physical_examination_registration Where [CheckUpTeamUnitBill] = 2 And [CheckUpPay] = 0;;

SELECT SUM([CheckUpMoney]) AS CheckUpMoney_SUM FROM Physical_examination_registration WHERE [CheckUpTeamUnitBill]=2 AND Group_inspection_unit_ID=?;


SELECT SUM([CheckUpMoney_RealPrice]) AS CheckUpMoney_RealPrice_SUM FROM Physical_examination_registration WHERE [CheckUpTeamUnitBill]=2 AND [CheckUpPay]=1 AND Group_inspection_unit_ID=?;

第一个语句的查询结果依次带入第二个和第三个语句中,最后形成表,列名依次是Group_inspection_unit_ID,CheckUpMoney_SUM,CheckUpMoney_RealPrice_SUM。

 

有大佬知道怎么解决吗?实在不行给个思路也行

  • 写回答

1条回答 默认 最新

  • 树莓大王 2023-03-14 23:41
    关注

    根据你的问题描述,你需要将第一个 SELECT 语句查询出的 Group_inspection_unit_ID 的值依次作为参数传入第二个和第三个 SELECT 语句中,并将它们的结果合并成一张表,表的列名依次是 Group_inspection_unit_ID、CheckUpMoney_SUM、CheckUpMoney_RealPrice_SUM。

    可以使用 SQL Server 中的 JOIN 操作将这些 SELECT 语句的结果合并成表。具体操作如下:

    SELECT p.Group_inspection_unit_ID, SUM(p2.CheckUpMoney) AS CheckUpMoney_SUM, SUM(p3.CheckUpMoney_RealPrice) AS CheckUpMoney_RealPrice_SUM
    FROM Physical_examination_registration p
    JOIN (
        SELECT Group_inspection_unit_ID, CheckUpMoney
        FROM Physical_examination_registration
        WHERE CheckUpTeamUnitBill = 2 AND CheckUpPay = 0
    ) p2 ON p2.Group_inspection_unit_ID = p.Group_inspection_unit_ID
    JOIN (
        SELECT Group_inspection_unit_ID, CheckUpMoney_RealPrice
        FROM Physical_examination_registration
        WHERE CheckUpTeamUnitBill = 2 AND CheckUpPay = 1
    ) p3 ON p3.Group_inspection_unit_ID = p.Group_inspection_unit_ID
    GROUP BY p.Group_inspection_unit_ID
    

    这里使用了两个子查询来分别获取 CheckUpMoney_SUM 和 CheckUpMoney_RealPrice_SUM,然后将它们与第一个 SELECT 语句的结果用 JOIN 操作合并成一张表,并使用 GROUP BY 子句按照 Group_inspection_unit_ID 进行分组。

    希望这个解决方案能够帮助到你。

    评论

报告相同问题?