查詢時如何自動產生Q1~Q4的代表數字?
善用查詢加入函數+計算來生成,即可完成Q1~Q4的計算。
- 先使用Datepart計算出月
- 轉化成浮點數,因為datepart回傳是INT
- 數學計算,除以3之後強制進位成整數,就是答案。
- 如果需要加上年,我的作法會加上用Format去生成完整數字(轉字元)。
-- Q 季度的計算方式
SELECT
a.dd,
CEILING(CAST(DATEPART(month,a.dd) AS float)/3) qq,
prd, qty
FROM p_list_22;
-- Q 季度+年的整合方式
SELECT
a.dd,
FORMAT(a.dd,'yy')+FORMAT(CEILING(CAST(DATEPART(month,a.dd) AS float)/3),'00') yq,
prd, qty
FROM p_list_22;
在此例中,qq的回傳是1~4整數,yq的回傳是yy0q的數字組合成的文字(年+季),當然也可做成 'yyQq'、'yy_q' ,不要在中間填0的格式。