将多个表联合在一起并根据聚合字段过滤掉选择。

时间:2014-05-20 19:30:48

标签: sql sql-server tsql

我正在创建一个基于多个表联合在一起的视图,我试图只包含有记录的结果。这是我到目前为止的代码:

SELECT 
'001' AS ReportNumber
,'RPT001' AS ReportName
,ISNULL(SUM(1),0) AS ActiveReportCount

FROM [DBNAME].[dbo].[V_Rpt001]

UNION ALL 

SELECT 
'002' AS ReportNumber
,'RPT_002' AS ReportName
,ISNULL(SUM(1),0) AS ActiveReportCount

FROM [DBNAME].[dbo].[V_Rpt001]

WHERE SUM(1)> 0 

这不起作用,因为它希望按某种方式对其进行分组,但唯一的其他选择是文字。

感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

SELECT *
FROM ((SELECT '001' AS ReportNumber, 'RPT001' AS ReportName, ISNULL(SUM(1),0) AS ActiveReportCount
       FROM [DBNAME].[dbo].[V_Rpt001]
      ) UNION ALL 
      (SELECT '002' AS ReportNumber, 'RPT_002' AS ReportName, ISNULL(SUM(1),0) AS ActiveReportCount
       FROM [DBNAME].[dbo].[V_Rpt001]
      )
     ) r
WHERE ActiveReportCount > 0;