Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 server 返回6上个月选择上个月_Sql Server - Fatal编程技术网

Sql server 返回6上个月选择上个月

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

and GROUP BY子句中缺少您的代码,日期差异(考虑到结束日期为'2019-01-31'的六个月)可以按照下面的脚本进行计算-

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'