Sql 查询返回所有行

Sql 查询返回所有行,sql,sql-server,Sql,Sql Server,我想知道哪一个月购买最多。查询返回所有行,我想计算每个月的购买量。有人能帮忙吗 SELECT COUNT(Inv_Num) AS 'NUM OF PURCHASES', DATENAME(MONTH, [Inv_Date]) AS MONTH FROM tblInv_info WHERE DATENAME(YEAR, [Inv_Date]) BETWEEN '2012' AND '2020' GROUP BY Inv_Num, Inv_Date ORDER BY MONTH DESC, CO

我想知道哪一个月购买最多。查询返回所有行,我想计算每个月的购买量。有人能帮忙吗

SELECT COUNT(Inv_Num) AS 'NUM OF PURCHASES', DATENAME(MONTH, [Inv_Date]) AS MONTH  
FROM tblInv_info
WHERE DATENAME(YEAR, [Inv_Date]) BETWEEN '2012' AND '2020'
GROUP BY Inv_Num, Inv_Date
ORDER BY MONTH DESC, COUNT(Inv_Num);

您遇到的问题很可能是由
INV_PAID
列中的一个或多个记录中的错误数据引起的。虽然我没有确切的答案,但如果您使用的是SQL Server 2012或更高版本,那么
TRY\u CONVERT
可能是清除违规记录的一种方法:

SELECT *
FROM tblInv_info
WHERE TRY_CONVERT(datetime, INV_PAID) IS NULL;

您遇到的问题很可能是由
INV_PAID
列中的一个或多个记录中的错误数据引起的。虽然我没有确切的答案,但如果您使用的是SQL Server 2012或更高版本,那么
TRY\u CONVERT
可能是清除违规记录的一种方法:

SELECT *
FROM tblInv_info
WHERE TRY_CONVERT(datetime, INV_PAID) IS NULL;

根据您的错误,
[Inv_Paid]
是一个日期时间,但作为字符串存储不正确。并且不是使用默认格式存储,就是存储不一致。您需要为我们提供一些示例数据以提供帮助。“Inv_Paid是日期数据类型”-这在您得到的错误中是不可能的-它的varchar或nvarchar.Tanks对于您的输入,它存储在varchar中,但现在当我更改为DATE时,它不会返回所需的结果,它会根据您的错误返回所有行
[Inv_Paid]
是日期时间,但作为字符串存储不正确。并且不是使用默认格式存储,就是存储不一致。您需要为我们提供一些示例数据,以便提供帮助。“Inv_Paid是日期数据类型”-这在您得到的错误中是不可能的-它的varchar或nvarchar.Tanks对于您的输入,它存储在varchar中,但现在当我更改为DATE时,它没有返回所需的结果,它返回所有行