全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1144
推到 Plurk!
推到 Facebook!

求連續三個月的銷售量,語法卡住?

答題得分者是:timhuang
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-25 09:45:23 IP:210.61.xxx.xxx 未訂閱
請教前輩 我要產生  產品編號,第一月數量,第二月數量,第三月數量    使用語法(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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-25 12:08:10 IP:210.69.xxx.xxx 未訂閱
先用少量的資料進行測試, 正確了再談改進效能 另外建立一個新 table, 將這 3 個月的資料存入該新 table 然後 才進行下面查詢, 不要對完整的 table 做查詢 看看能否改進效能 或者改用 stored procedure 或者使用 index
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-25 13:15:07 IP:203.95.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-25 15:41:53 IP:210.61.xxx.xxx 未訂閱
timhuang大大 謝謝您,這是正是我要的
系統時間:2024-09-08 19:09:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!