在单个查询中组合2个查询

时间:2016-04-28 11:34:33

标签: sql sql-server

我正在使用MSSQL server 2008

我想在单个查询中组合2个查询

SELECT Id,GroupName,Status,StartDateTime 
from MasterSchedule  
Where Project='Sample' AND SubProject='Sample'
 AND StartDateTime between '2016-04-25' AND '2016-04-27'


SELECT sum(DATEDIFF(SECOND, CONVERT(NVARCHAR, StartTime,100) , CONVERT(NVARCHAR, EndTime,100))) as totaltime
from MasterScheduleDetails 
where MasterScheduleId = Id

数据库的架构是 MasterSchedule

Id          Project                                                                                                                                                                                                                                                         SubProject                                                                                                                                                                                                                                                      GroupName                                          StartDateTime           Status                                             Time                                               CreatedDate                                        BrowserName                                        RunPauseStatus
----------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------------------------------------
22          Sample                                                                                                                                                                                                                                                          Sample                                                                                                                                                                                                                                                          TEST_01                                            2016-04-26 16:03:59.000 Completed                                          04/26/2016 16:03:18                                04/26/2016                                         eZscript;IE                                        NotStarted

MasterScheduleDetails Table
Id          MasterScheduleId SuiteId     Status                                                                                                                                                                                                                                                           RunOn                                              StartTime                                                                                                                                                                                                                                                        SequenceNo  RunSuiteId                                                                                                                                                                                                                                                       EndTime                                                                                                                                                                                                                                                          XmlReportId                                        TestDescription
----------- ---------------- ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
43          22               1           Pass                                                                                                                                                                                                                                                             192.168.1.139                                      04/26/2016 16:05:09                                                                                                                                                                                                                                              0           1                                                                                                                                                                                                                                                                04/26/2016 16:05:41                                                                                                                                                                                                                                              GTSABHIJIT_abhijit.shelar_04262016160509           BPW
44          22               2           Pass                                                                                                                                                                                                                                                             192.168.1.139                                      04/26/2016 16:06:11                                                                                                                                                                                                                                              1           2                                                                                                                                                                                                                                                                04/26/2016 16:06:43                                                                                                                                                                                                                                              GTSABHIJIT_abhijit.shelar_04262016160611           BPW1

目前我正在使用for循环并获得结果

最终结果要求是

Id,GroupName,Status,StartDateTime,totaltime
22,TEST_01,Completed,2016-04-26 16:03:59.000,64

1 个答案:

答案 0 :(得分:1)

这是你想要的吗 - 用第一个中的id替换第二个查询中的id?

SELECT sum(DATEDIFF(SECOND, StartTime, EndTime)) as totaltime
from MasterScheduleDetails 
where MasterScheduleId in (SELECT Id
                           from MasterSchedule  
                           Where Project = 'Sample' AND SubProject = 'Sample' AND
                                 StartDateTime between '2016-04-25' AND '2016-04-27'
                          );

注意:这会将转化修复为nvarchar()DATEDIFF()date / datetime值运行,而不是字符串。将有效日期/时间转换为字符串是荒谬的,只是可以将其隐式转换回日期/时间。