首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个查询中合并查询

在一个查询中合并查询
EN

Stack Overflow用户
提问于 2014-02-24 05:38:33
回答 1查看 80关注 0票数 1

是否可以将这两个查询合并为一个查询?

代码语言:javascript
复制
SELECT COUNT(IMA.FKRiskID) AS RiskCountWithoutPlan 
 FROM Rpt_ImpactAssessment IMA  
WHERE IMA.FKItemID = 38
  AND IMA.ImpactCurPIDLevel LIKE '%High%' 
  AND NOT EXISTS 
    (   
       select 1 
         from RM_LinkActionToPlan LAP                
        where IMA.FKPlanID = LAP.PlanID
     )   
SELECT COUNT(IMA.FKRiskID) AS RiskCountWithPlan
 FROM Rpt_ImpactAssessment IMA 
WHERE IMA.FKItemID = 38 
  AND  IMA.ImpactCurPIDLevel LIKE '%High%'
  AND EXISTS (  
                  select 1 
                    from RM_LinkActionToPlan LAP                 
                   where IMA.FKPlanID = LAP.PlanID
             )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 06:29:36

尝尝这个。它适用于我使用虚拟数据(我将发布查询作为评论)。这将给出两列:第一列是RiskCountWithoutPlan,第二列是RiskCountWithPlan

代码语言:javascript
复制
SELECT 
    SUM([rcwop]) [RiskCountWithoutPlan],
    SUM([rcwp]) [RiskCountWithPlan]
FROM
(
    SELECT 
        CASE WHEN LAP.PlanID IS NULL THEN 1 ELSE 0 END [rcwop],
        CASE WHEN LAP.PlanID IS NOT NULL THEN 1 ELSE 0 END [rcwp]
    FROM 
        Rpt_ImpactAssessment IMA  
        LEFT JOIN RM_LinkActionToPlan LAP ON IMA.FKPlanID = LAP.PlanID              
    WHERE IMA.FKItemID = 38
  AND IMA.ImpactCurPIDLevel LIKE '%High%' 
) tbl

希望这就是你要找的。

Stu

代码语言:javascript
复制
DECLARE @Rpt_ImpactAssessment TABLE (
    FKRiskID INT, 
    FKItemID INT,
    FKPlanID INT,
    ImpactCurPIDLevel NVARCHAR(20)
)

DECLARE @RM_LinkActionToPlan TABLE (
    FKRiskID INT, 
    FKItemID INT,
    PlanID  INT,
    ImpactCurPIDLevel NVARCHAR(20)
)


INSERT INTO @Rpt_ImpactAssessment VALUES (1, 38, 2, 'High')
INSERT INTO @RM_LinkActionToPlan VALUES (1, 38, 2, 'High')

INSERT INTO @Rpt_ImpactAssessment VALUES (1, 38, 3, 'High')
INSERT INTO @RM_LinkActionToPlan VALUES (1, 38, 3, 'High')


SELECT 
    SUM([rcwop]) [RiskCountWithoutPlan],
    SUM([rcwp]) [RiskCountWithPlan]
FROM
(
    SELECT 
        CASE WHEN LAP.PlanID IS NULL THEN 1 ELSE 0 END [rcwop],
        CASE WHEN LAP.PlanID IS NOT NULL THEN 1 ELSE 0 END [rcwp]
    FROM 
        @Rpt_ImpactAssessment IMA  
        LEFT JOIN @RM_LinkActionToPlan LAP ON IMA.FKPlanID = LAP.PlanID              
    WHERE IMA.FKItemID = 38
  AND IMA.ImpactCurPIDLevel LIKE '%High%' 
) tbl
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21979705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档