简体   繁体   English

从两个 SQL 查询的结果中求和

[英]Find the sum from the results of two SQL queries

declare @CURDATETIME DATETIME

SET @CURDATETIME = GETDATE()

Select
(select COUNT(TABLE1.RECID) AS Expr1
                FROM            TABLE1 LEFT OUTER JOIN
                                TABLE2 ON TABLE2.ISSUEID = TABLE1.ISSUEID
                WHERE           (TABLE1.STATUS = 3) AND (TABLE2.NOTIFICATIONINDEP = 1)) AS OpenNotifications,


            (Select 
                            count(TABLE1.RECID) AS [ar3]
                from            TABLE1 left outer join 
                        TABLE2 ON TABLE2.ISSUEID = TABLE1.ISSUEID 
                where   TABLE1.STATUS = 4 
                        and TABLE2.NOTIFICATIONINDEP = 1
                        AND dateadd(second, TABLE1.CREATEDTIME, TABLE1.createddate) <= dateadd(hour, -1, @CURDATETIME) 
                        and dateadd(second, TABLE1.FinishedTime, TABLE1.FinishedDate) between dateadd(hour, -2, @CURDATETIME) and @CURDATETIME) as AR3,
            (Select 
                            count(TABLE.RECID) as [ar4]
                from            TABLE1 left outer join 
                        TABLE2 ON TABLE2.ISSUEID = TABLE1.ISSUEID
                where   TABLE1.STATUS = 3 and TABLE2.NOTIFICATIONINDEP = 1
                        and dateadd(second, TABLE1.createdtime, TABLE1.createddate) < dateadd(hour, -1, getdate())) as AR4,     

Your question is not very clear but as you told in comments, you can sum the count of 2 select statemets like below (assuming your select statements are working and returning integer values) and use this in your query.您的问题不是很清楚,但正如您在评论中所说,您可以对如下所示的 2 个选择语句的计数求和(假设您的选择语句正在工作并返回整数值)并在您的查询中使用它。

select 
        (Select 
                        count(TABLE1.RECID) AS [ar3]
            from            TABLE1 left outer join 
                    TABLE2 ON TABLE2.ISSUEID = TABLE1.ISSUEID 
            where   TABLE1.STATUS = 4 
                    and TABLE2.NOTIFICATIONINDEP = 1
                    AND dateadd(second, TABLE1.CREATEDTIME, TABLE1.createddate) <= dateadd(hour, -1, @CURDATETIME) 
                    and dateadd(second, TABLE1.FinishedTime, TABLE1.FinishedDate) between dateadd(hour, -2, @CURDATETIME) and @CURDATETIME)
 +

        (Select 
                        count(TABLE.RECID) as [ar4]
            from            TABLE1 left outer join 
                    TABLE2 ON TABLE2.ISSUEID = TABLE1.ISSUEID
            where   TABLE1.STATUS = 3 and TABLE2.NOTIFICATIONINDEP = 1
                    and dateadd(second, TABLE1.createdtime, TABLE1.createddate) < dateadd(hour, -1, getdate()))

as total from dual

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM