2
条款我试着写代码,我只想看到当前财年的请求case语句。我们的财年开始7月1日,结束6月30日的SQL Server 2008 R2:在当前财年
但是,当我写了下面的代码
SELECT
group_name
,SUM(CASE WHEN status = 'HOLD'THEN 1 ELSE 0 END) AS HOLD
,SUM(CASE WHEN status = 'CL'THEN 1 ELSE 0 END) AS CL
,SUM(CASE WHEN status = 'OP'THEN 1 ELSE 0 END) AS OP
FROM dbo.View_Request
WHERE CASE WHEN datepart(mm, GetDate()) > 6 THEN /*It is past June in this year*/
datepart(mm,dateadd(second,open_date,'19700101')) >= 7
AND datepart(yy,dateadd(second,open_date,'19700101')) = datepart(yy, GetDate())
ELSE /*It is June 30th or earlier in the year*/
CASE WHEN datepart(mm,dateadd(second,open_date,'19700101')) <= 6 THEN
datepart(yy,dateadd(second,open_date,'19700101')) = datepart(yy, GetDate())
ELSE
datepart(yy,dateadd(second,open_date,'19700101')) = datepart(yy, GetDate())-1
END
END
GROUP BY group_name
我得到了模糊的错误消息:
消息102,15级,状态1, 8号线
附近有语法错误 '>'。
我该如何解决这个问题的代码只从当前财年的研究项目
我计算出来:WHERE( \t \t(日期部分(YY,DATEADD(第二,open_date, '19700101'))=日期部分(YY,GETDATE())AND日期部分(毫米, DATEADD(第二,open_date, '19700101'))> 6和日期分量(毫米,GETDATE())> 6) 或 \t \t(datepart(yy,dateadd(second,open_date,'19700101'))= datepart(yy,GetDate())AND datepart(mm,dateadd(second,open_date,'19700101'))<= 6与日期部分(毫米,GETDATE())<= 6) \t \t OR \t \t(日期部分(YY,DATEADD(第二,open_date, '19700101'))=日期部分(YY,GETDATE() - 1)和日期分量(毫米,DATEADD(第二,open_date, '19700101'))> 6和日期部分(毫米,GETDATE())<= 6) \t) – jsmith
@jsmith:请你用的解决方案更新您的问题 - 在这里评论,它的**真的很难**阅读..... –