SQL Server简单求和查询未返回预期结果
我已经搜索了一些其他的答案,但是没有得到我期望的结果 我的问题是:SQL Server简单求和查询未返回预期结果,sql,sql-server,Sql,Sql Server,我已经搜索了一些其他的答案,但是没有得到我期望的结果 我的问题是: SELECT CONVERT(VARCHAR(18),[Trx_Date],110) AS Date ,[TRX_TYPE] ,SUM([QUAN]) AS QUANt FROM [VM].[dbo].[INVTRX] WHERE SKU='7342761' AND TRX_TYPE!='S' AND TRX_DATE BETWEEN '12-15-2016' AND '12-18-2016' AND
SELECT
CONVERT(VARCHAR(18),[Trx_Date],110) AS Date
,[TRX_TYPE]
,SUM([QUAN]) AS QUANt
FROM [VM].[dbo].[INVTRX]
WHERE SKU='7342761' AND TRX_TYPE!='S' AND TRX_DATE BETWEEN '12-15-2016' AND '12-18-2016' AND ID_CONT=557
GROUP BY QUAN, Trx_Type, TRX_DATE
我的结果:
日期-TRX_类型-QUANt
12-15-2016-PT-48.0000
12-16-2016-PT-78.0000
12-16-2016-PT-90.0000
我要找的是:
日期-TRX_类型-QUANt
12-15-2016-PT-48.0000
12-16-2016-PT-168.0000
另外,还有一个额外的问题:如何格式化Stackoverflow上的表
谢谢你的帮助 日期上似乎有时间成分。我建议只转换为日期而不是字符串:
SELECT
CONVERT(VARCHAR(18),[Trx_Date],110) AS Date
,[TRX_TYPE]
,SUM([QUAN]) AS QUANt
FROM [VM].[dbo].[INVTRX]
WHERE SKU='7342761' AND TRX_TYPE!='S' AND TRX_DATE BETWEEN '12-15-2016' AND '12-18-2016' AND ID_CONT=557
GROUP BY Trx_Type, Trx_Date;
SELECT CAST([Trx_Date] AS Date), TRX_TYPE
SUM(QUAN) AS QUANT
FROM [VM].[dbo].[INVTRX] i
WHERE SKU = '7342761' AND
TRX_TYPE <> 'S' AND
TRX_DATE >= '2016-12-15' AND
TRX_DATE < '2016-12-19' AND
ID_CONT = 557
GROUP BY CAST([Trx_Date] AS Date), Trx_Type;
注:
转换为日期以删除时间组件。
您需要在GROUP BY中重复该表达式。
对于日期常量,请使用ISO标准格式,如YYYYMMDD或YYYY-MM-DD。
如果你的日期有一个时间成分,那么不要使用BETWEEN。
仅包括分组依据中的未聚合列。
日期上似乎有一个时间部分。我建议只转换为日期而不是字符串:
SELECT CAST([Trx_Date] AS Date), TRX_TYPE
SUM(QUAN) AS QUANT
FROM [VM].[dbo].[INVTRX] i
WHERE SKU = '7342761' AND
TRX_TYPE <> 'S' AND
TRX_DATE >= '2016-12-15' AND
TRX_DATE < '2016-12-19' AND
ID_CONT = 557
GROUP BY CAST([Trx_Date] AS Date), Trx_Type;
注:
转换为日期以删除时间组件。
您需要在GROUP BY中重复该表达式。
对于日期常量,请使用ISO标准格式,如YYYYMMDD或YYYY-MM-DD。
如果你的日期有一个时间成分,那么不要使用BETWEEN。
仅包括分组依据中的未聚合列。
从群中移除QUAN by。谢谢,实际上我只是在尝试各种修复时添加了这一点。我确实删除了它,但更大的问题是使用了下面指出的转换日期。请从group by中删除QUAN。谢谢,我只是在尝试各种修复时添加了这一点。我确实删除了它,但更大的问题是使用下面指出的转换日期。谢谢你,这非常有效。这么容易疏忽。我会在10分钟内接受你的回答谢谢你这工作做得很好。这么容易疏忽。10分钟后我会接受你的回答谢谢你提供更多信息,这很有帮助。我想请问,当日期包含时间成分时,为什么不应该使用between?另外,对VS!=,是否有偏好?我显然处于学习阶段,希望尽可能遵守标准。感谢您提供的补充信息,这是很有帮助的。我想请问,当日期包含时间成分时,为什么不应该使用between?另外,对VS!=,是否有偏好?我显然处于学习阶段,如果可能的话,我愿意遵守标准。