Sql 查询中新列的总和
我有以下疑问:Sql 查询中新列的总和,sql,sql-server,sum,Sql,Sql Server,Sum,我有以下疑问: SELECT distinct COUNT(Status) AS [Transactions], sending_organisation AS [Supplier], DATENAME(mm, Date_Reported) AS Month, DATENAME(yyyy, Date_Reported) AS Year, Sum(Case When Status = 'Defect' Then 1 Else 0 End) As Defect, Sum(Case When Stat
SELECT distinct COUNT(Status) AS [Transactions], sending_organisation AS [Supplier],
DATENAME(mm, Date_Reported) AS Month, DATENAME(yyyy, Date_Reported) AS Year,
Sum(Case When Status = 'Defect' Then 1 Else 0 End) As Defect,
Sum(Case When Status = 'Failed' Then 1 Else 0 End) As Failed,
Sum(Case When Status = 'Success' Then 1 Else 0 End) As Success,
FROM [Tx]
where Channel_Partner = 'CAT'
and DATENAME(yyyy, Date_Reported) = '2018'
and DATENAME(mm, Date_Reported) = 'March'
GROUP BY DATENAME(mm, Date_Reported), DATENAME(yyyy, Date_Reported), sending_organisation
ORDER BY sending_organisation ASC
正如您所看到的,我已经创建了defect、success和failed的新列
我想在同一个查询中添加另一列,以查找failed+success的聚合和
您知道如何在不创建表或不执行多个查询的情况下实现这一点吗
提前感谢只需添加另一列
COUNT()
:
根据OP的意见(关于一个完全无关的问题),要返回当月的数据,我将使用:
AND Date_Reported >= DATEADD(MONTH, DATEDIFF(MONTH,0,GETDATE()),0)
AND Date_Reportded < DATEADD(MONTH, DATEDIFF(MONTH,0,GETDATE()) + 1,0)
和Date\u Reported>=DATEADD(月,DATEDIFF(月,0,GETDATE()),0)
报告的日期<日期添加(月,日期差异(月,0,GETDATE())+1,0)
如果需要的话,您应该能够根据自己的需要对其进行细微的修改。在你的专栏中使用类似于
DATENAME
的东西不是一个好主意;这使查询变得不可搜索。太棒了,谢谢。对不起,关于上述问题,还有一个问题。如您所见,目前我正在手动编写最近的月份/年份。我如何调整它,使其自动在数据库中查找最新日期?@TarikulIslam您的意思是,如果今天运行,它将返回本月/上个月的数据?是的,而不是我输入5月作为月份,输入2018年作为年份(对不起,我知道上面写的是3月)
AND Date_Reported >= DATEADD(MONTH, DATEDIFF(MONTH,0,GETDATE()),0)
AND Date_Reportded < DATEADD(MONTH, DATEDIFF(MONTH,0,GETDATE()) + 1,0)