請問版上有人在用DSC的BI自訂報表嗎?
因為剛開始學,想請問一個問題:
我在作一個銷售預則交叉表,目前預到2個問題,可搭配下表看:
同一月份合成一個欄位,叫2016/8,其他月份也要比照..(我知道可以用分組,但是我每個要自動寄出,我不想每次都進去分組,希望報表可以自動轉換,可能要下函式..)
再來是同一月份的預測需抓最後一筆,以下例子,要抓2016/8/25的值5。
2016/8/1|2016/8/15|2016/8/24|2016/8/25|2016/9/2
------------- | -------------
0 |2 |0 |5 |3
上述2個問題,最後需要將BI的報表變下表的樣子:
2016/8 | 2016/9 |
---|---|
5 | 3 |
目前也發信問客服中,只是都還沒回應,到時候會分享客服解法。
我是不懂鼎新的東西
但是依照你的需求,這是單純SQL語法可以作到。
第一個那是GROUP BY 觀念
第二個利用MAX()指令,配合select 挑選出最大值。
樓主要的這份報表:個人認為要在BI中完成難度很高.(應該說:做不到).
因為鼎新的自定義報表的做法就是只能用一行 SELECT 語法完成.
依樓主所開的規格:一定要用到T-SQL的變數.才能滿足.
有二種處理方式:
最重要的SELECT 語法去撈當月的最後一筆資料的語法重點:
declare @ym char(6)
SELECT @ym=year(getdate())+right(month(getdate())+100,2) -- 取年月
select X.IMA01 ,
YEAR(Y.OGA02) 年 ,MONTH(Y.OGA02) 月,
CASE WHEN Y.OGB12 IS NULL THEN 0 ELSE Y.OGB12 END OGB12
FROM OPENQUERY(ORC,'SELECT IMA01 FROM SIL1.IMA_FILE') X LEFT JOIN
(select MAX(OGA02) OGA02 ,OGB04,OGB12
from openquery(ORC,'SELECT MAX(OGA02) OGA02,OGB04,OGB12 from SIL1.OGA_FILE,sil1.ogb_file where oga01=ogb01 and year(oga02)=2014 GROUP BY year(OGA02),MONTH(OGA02),OGB04,OGB12 ')
GROUP BY MONTH(OGA02),OGB04,OGB12 ) Y
ON X.IMA01 =Y.OGB04
WHERE Y.OGB04 IS NOT NULL
@ym:填 table a 表頭用
上列語法:供參考用.