我对下面的陈述有困难。我尝试过多种方式编写,但会相应地收到不同的错误。我希望将结果输出到单个表中,每个计数都在一个单独的(但相邻的)列中,就像这样......
--------+--------+-------- | alias1 | alias2 | alias3 | --------+--------+-------- | count1 | count2 | count3 | --------+--------+--------
方法1:
SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Department AS Alias1
, (SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Employee) AS Alias2
, (SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory) AS Alias3
这会在Alias2(和Alias3)上返回一个错误,说明"没有为第1列' Alias2'""
指定列然后我尝试按如下方式重做:
SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Department AS Alias1
, (SELECT COUNT(*) AS Alias2
FROM AdventureWorks2012.HumanResources.Employee)
, (SELECT COUNT(*) AS Alias3
FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory)
错误转移到','将SELECT语句与错误分开,"','附近的语法错误。期待AS,ID或QUOTED_ID。"
我试图做的事似乎很简单,但我是空洞的。任何帮助将不胜感激。
答案 0 :(得分:1)
SELECT
(SELECT COUNT(*) FROM AdventureWorks2012.HumanResources.Department) AS Alias1,
(SELECT COUNT(*) FROM AdventureWorks2012.HumanResources.Employee) AS Alias2,
(SELECT COUNT(*) FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory) AS Alias3
答案 1 :(得分:0)
获得所需结果的一种方法是将每个语句用作派生表:
SELECT * FROM
(SELECT COUNT(*) AS Alias1 FROM AdventureWorks2012.HumanResources.Department) AS a1 ,
(SELECT COUNT(*) AS Alias2 FROM AdventureWorks2012.HumanResources.Employee) AS a2,
(SELECT COUNT(*) AS Alias3 FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory) AS a3
(或者您可以将这些语句用作子查询,如另一个答案中所示)