我試圖找到一種更有效的方式來重新編寫我的查詢。SQL Server查詢優化日期計算
有什麼建議嗎?我目前也在考慮將會計月份名稱顯示爲數字本身,然後比較並返回月份名稱。
(case --proj_end_fis_mon
when (MYMW.mfg_year_no = FYQM.fiscal_year_no and MYMW.mfg_month_no = 12)
then
(convert(varchar,(MYMW.mfg_year_no-1))+'-'+(case
when FM.fiscal_month_name like 'Jan%' then '01'
when FM.fiscal_month_name like 'Feb%' then '02'
when FM.fiscal_month_name like 'Mar%' then '03'
when FM.fiscal_month_name like 'Apr%' then '04'
when FM.fiscal_month_name like 'May' then '05'
when FM.fiscal_month_name like 'June' then '06'
when FM.fiscal_month_name like 'July' then '07'
when FM.fiscal_month_name like 'Aug%' then '08'
when FM.fiscal_month_name like 'Sep%' then '09'
when FM.fiscal_month_name like 'Oct%' then '10'
when FM.fiscal_month_name like 'Nov%' then '11'
when FM.fiscal_month_name like 'Dec%' then '12'
end))
else
(convert(varchar,MYMW.mfg_year_no)+'-'+(case
when FM.fiscal_month_name like 'Jan%' then '01'
when FM.fiscal_month_name like 'Feb%' then '02'
when FM.fiscal_month_name like 'Mar%' then '03'
when FM.fiscal_month_name like 'Apr%' then '04'
when FM.fiscal_month_name like 'May' then '05'
when FM.fiscal_month_name like 'June' then '06'
when FM.fiscal_month_name like 'July' then '07'
when FM.fiscal_month_name like 'Aug%' then '08'
when FM.fiscal_month_name like 'Sep%' then '09'
when FM.fiscal_month_name like 'Oct%' then '10'
when FM.fiscal_month_name like 'Nov%' then '11'
when FM.fiscal_month_name like 'Dec%' then '12'
end))
end)
這就是我的表是這樣的:
爲什麼冗長'情況下FM.fiscal_month_name比如'Jan%',然後'01',當......結束時,而不僅僅是FM.fiscal_month_no? – 2013-05-04 15:16:27
+1是的。那是更好的方法。只要將該數字轉換爲varchar即可。謝謝。 :) – camelbrush 2013-05-04 20:01:42