English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我只有一個資料表, access的. 請問一下Select avg(出貨量/送貨時間), avg(出貨量/停靠次數)from 產能where date>=#01/02/2003#and date<=#28/02/2003#問題來了 各位大大我寫的SQL是只找出1個月的資料但我老闆要我找出過去10年的每個月的資料讓他可以自己畫成走勢圖我總不能一個一個去換, 弄120次吧?有沒有啥語法可以讓他自動列出來每個月的數據拜託

2006-04-16 05:39:46 · 3 個解答 · 發問者 chieh98_w 5 in 電腦與網際網路 軟體

第一部份列出所有的月份做出來了
請問一下這個部份怎麼作?
""再用你這個查詢和你 的[產能] 資料庫 的年份和月份 join 的話配合"
1. 我不會joint 兩個查尋
2. 我想到的是用subquery子查尋大哥你覺得對嗎?
我輸入的是

SELECT DISTINCT year(process_date), month(process_date)
FROM productivity
where month(process_date)0
(select avg(cases/totaltime)
from productivity)
;
快瘋了

2006-04-17 16:39:03 · update #1

3 個解答

這個應滿常做的,如果在MS SQL server可以用ROLLUP 或COMPUTE 可產生多個結果集,來做到.但因Access 沒支援復雜的SQL ,所以你如果要做到.我想你對Access應有點了解才對,我就只說一下概念做法.實際還是有你去做.先產生一個查詢或table 記錄了10年來的每個年份和月份.看你要寫死的或是用你原來的[產能]資料庫,來產成出來.例如:select distinct year(date) year_date ,month(date) as month_date from 產能 主要你要想辦法做出你想要的時間區間的資料表.再用你這個查詢和你 的[產能] 資料庫 的年份和月份 join 的話配合,每月的group by ,就可以代替你原來要做120次的查詢了..希望你能了解,如果你真的不會再把你的資料表和要查詢的日期.我再教你做吧.

2006-04-19 00:48:11 補充:
我想妳可以用Group by 年和月 就可以了.沒有要其他條件的話如下:SELECT year(process_date) , month(process_date) ,avg(cases/totaltime) FROM productivity where month(process_date)<>0 and totaltime is not null GROUP BY year(process_date), month(process_date)order by year(process_date), month(process_date)

2006-04-19 00:49:48 補充:
如真的不行,再把Access e-mail給我好了。我不知你要用那些欄位,只能看你寫的大約猜而已。

2006-04-23 00:07:55 補充:
反正SQL多寫就可以.但我為什麼不像別人寫的比較簡單.因為別人如經驗不夠會少考慮到,你的process_date 會不會是NULL及如除的話..分母不能為0或NULL喔..所以我的範例會有多where month(process_date)<>0 and totaltime is not null ,希望你了解.^^

2006-04-16 19:08:31 · answer #1 · answered by 文龍 5 · 0 0

沒那麼難吧可以試試下面的sqlselect year(productivity),month(productivity),avg(出貨量/送貨時間),avg(出貨量/停靠次數)from productivitygroup by year(productivity),month(productivity)order by year(productivity),month(productivity)

2006-04-21 00:42:47 補充:
寫錯,因該是select year(process_date),month(process_date),avg(出貨量/送貨時間),avg(出貨量/停靠次數)from productivitygroup by year(process_date),month(process_date)order by year(process_date),month(process_date)

2006-04-20 20:41:14 · answer #2 · answered by Pat 5 · 0 0

可是用group by以月份來分組試試看

2006-04-16 10:12:37 · answer #3 · answered by 上官 5 · 0 0

fedest.com, questions and answers