Sql server 返回6上个月选择上个月
and GROUP BY子句中缺少您的代码,日期差异(考虑到结束日期为'2019-01-31'的六个月)可以按照下面的脚本进行计算-Sql server 返回6上个月选择上个月,sql-server,Sql Server,and GROUP BY子句中缺少您的代码,日期差异(考虑到结束日期为'2019-01-31'的六个月)可以按照下面的脚本进行计算- SELECT DISTINCT itemcode, itemdescription, unitofmeasure, Sum([current]) AS [Ending Balance] WHERE transactiondate >= Dateadd(m
SELECT DISTINCT itemcode,
itemdescription,
unitofmeasure,
Sum([current]) AS [Ending Balance]
WHERE transactiondate >= Dateadd(month, Datediff(month, 0,
Dateadd(m, -6, '2019-01-31'
)), 0)
要获取上6个月的结果,请参见以下内容-
SELECT
itemcode,
itemdescription,
unitofmeasure,
Sum([current]) AS [Ending Balance]
FROM <your_table> -- FROM is missing. Please add appropriate table name
WHERE transactiondate Between
DATEADD(month, -6, '2019-01-31')
AND '2019-01-31'
GROUP BY itemcode,itemdescription,unitofmeasure
-- GROUP BY is required as you applied Aggregation on column [current]
WHERE YEAR(transactiondate) = YEAR(DATEADD(month, -6, '2019-01-31'))
AND MONTH(transactiondate) = MONTH(DATEADD(month, -6, '2019-01-31'))
您的查询中缺少一个
from
子句。您能用预期结果澄清您的问题吗?但我需要显示上月记录2018年7月至12月上午选择2019年1月,但我需要显示6个月的结果以获得2018年7月至12月的平均值,但仍然显示2019年1月的交易,但我需要显示上月记录2018年7月至12月2018仅从插入日期后的第6个月开始?如果输入日期为“2019-02-28”,则仅记录2018年8月的数据?谢谢Mkrabani,但他们是在“2019-01-31”上选择的客户,然后结果是2018年7月至12月,这就是我需要在6个月内结果的原因。@BenedictCaoili请检查答案中添加的新WHERE部分。非常欢迎您。请接受答案,如果有帮助,请投赞成票。
WHERE transactiondate BETWEEN
CAST(LEFT(CAST(DATEADD(MM,-6,CAST('2019-01-31' AS DATE)) AS VARCHAR),7) + '-01' AS DATE)
AND
DATEADD(DD,-1,CAST(CAST(LEFT(CAST(CAST('2019-01-31' AS DATE) AS VARCHAR),7) + '-01' AS DATE) AS DATE))
-- This is basically: transactiondate BETWEEN '2018-07-01' AND '2018-12-31'