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:請你用的解決方案更新您的問題 - 在這裏評論,它的**真的很難**閱讀..... –