求連續三個月的銷售量,語法卡住? |
答題得分者是:timhuang
|
pedro
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
請教前輩
我要產生 產品編號,第一月數量,第二月數量,第三月數量 使用語法(bil1b訂單表身,itemno品號)
select o.ItemNo,sum(a.cnt1) as month1,sum(b.cnt2) as month2 ,sum(c.cnt3) as month3 from bil1b o left join (select ItemNo,Quity as cnt1 from bil1b where OrdNo like '200501%' and ItemNo>='MS001' and ItemNo<='MS001') a on a.ItemNo=o.ItemNo left join (select ItemNo,Quity as cnt2 from bil1b where OrdNo like '200502%' and ItemNo>='MS001' and ItemNo<='MS001') b on b.ItemNo=o.ItemNo left join (select ItemNo,Quity as cnt3 from bil1b where OrdNo like '200503%' and ItemNo>='MS001' and ItemNo<='MS001') c on c.ItemNo=o.ItemNo where o.ItemNo>='MS001' and o.ItemNo<='MS001' group by o.itemno但在Analyzer就一直呈現在執行中,請問我要怎麼改善語法,才能快速執行及達到我要的報表? 謝謝您的幫忙! |
pcboy
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 轉置型的查詢, 除了用 temp table 外, 也可以使用轉向函數, 在 mssql 可以這樣下,
select ItemNo, sum(case when OrdNo like '200501%' then Quity else 0 end) as month1, sum(case when OrdNo like '200502%' then Quity else 0 end) as month2, sum(case when OrdNo like '200503%' then Quity else 0 end) as month3 from bil1b where ItemNo >='MS001' and ItemNo <='MS001' group by ItemNo |
pedro
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |