Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询中新列的总和_Sql_Sql Server_Sum - Fatal编程技术网

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)