将多个查询转换为单行

web*_*orm 2 sql reporting

我有一个报告,我想基于一个SQL语句.问题是数据基于几个SQL语句.例如.

SELECT COUNT(*) as 'Cases Opened' 
FROM tblCases 
WHERE DateAssigned BETWEEN @StartDate AND @EndDate

SELECT COUNT(*) as 'Cases Closed' 
FROM tblCases 
WHERE ClosedDate BETWEEN @StartDate AND @EndDate

SELECT COUNT(*) as 'Tickets Issued' 
FROM tblTicket 
WHERE DateIssued BETWEEN @StartDate AND @EndDate

SELECT COUNT(*) as 'Warnings Issued' 
FROM tblWarning 
WHERE DateIssued BETWEEN @StartDate AND @EndDate
Run Code Online (Sandbox Code Playgroud)

有没有办法将这四个单独的SQL语句转换为单个SQL语句,以便每个结果都列为一列?例如 ..

Cases Opened        Cases Closed       Tickets Issued        Warnings Issued
******************************************************************************
   256         |      165          |        56           |          165
Run Code Online (Sandbox Code Playgroud)

编辑我正在使用SQL Server,表之间没有任何关系.

Nat*_*ger 7

select 
 (
 SELECT COUNT(*)  
 FROM tblCases 
 WHERE DateAssigned BETWEEN @StartDate AND @EndDate
 ) as 'Cases Opened' ,
 (SELECT COUNT(*)  
 FROM tblCases 
 WHERE ClosedDate BETWEEN @StartDate AND @EndDate
 ) as 'Cases Closed' ,
 (SELECT COUNT(*)  
 FROM tblTicket 
 WHERE DateIssued BETWEEN @StartDate AND @EndDate
 ) as 'Tickets Issued' ,
 (SELECT COUNT(*) 
 FROM tblWarning 
 WHERE DateIssued BETWEEN @StartDate AND @EndDate
 )  as 'Warnings Issued'
from dual
Run Code Online (Sandbox Code Playgroud)

在oracle中必须使用dual,mysql支持它但不是必需的,我不确定sqlserver,因为我没有在我面前.

  • @Chuck Vose:Ofc这是"更好":)来源http://stackoverflow.com/questions/73751/what-is-the-dual-table-in-oracle (2认同)