在SQL中混合使用UNION ALL和DISTINCT

时间:2015-03-04 16:22:00

标签: sql-server

我有一个SQL Server 2014数据库。我正在构建一个存储过程,它将返回符合某些条件的几个表的计数。这时,我有以下内容:

SELECT 'Table1' TableName, COUNT(0) TotalRows FROM dbo.[SomeTable] 

UNION ALL

SELECT COUNT(DISTINCT [Name]) AS 'Department' FROM [Department] 

UNION ALL

SELECT COUNT(DISTINCT [SubDepartment]) AS 'SubDepartment' FROM [Department] 

UNION ALL

SELECT 'Table2' TableName, COUNT(0) TotalRows FROM dbo.[AnotherTable]

执行此SQL时,出现错误消息:

  

使用UNION,INTERSECT或EXCEPT运算符组合的所有查询在其目标列表中必须具有相同数量的表达式。

如果我删除以SELECT COUNT(...开头的两行,它就可以了。但是,我需要获取部门名称的数量和子部门名称的数量。如何在从其他表中获取计数的同时执行此操作?

谢谢!

0 个答案:

没有答案