線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1779
推到 Plurk!
推到 Facebook!

請問要怎麼下一個sql去計算某個欄位最後三次的平均值?

尚未結案
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-31 11:53:56 IP:203.204.xxx.xxx 未訂閱
請問各位高手: 我想寫一個可以計算最後三次進貨的進貨價的平均值,請問這個sql要怎麼寫?
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-31 12:07:36 IP:147.8.xxx.xxx 未訂閱
Perhaps you should give more details (e.g. table structure)
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-31 13:02:21 IP:203.204.xxx.xxx 未訂閱
william您好: 我的問題是:有三個資料表:1進貨主表單(deliverymaster),2進貨明細表(deliverydetail),3產品資料表(products)。 在產品資料表中有產品編號、平均進貨價…的欄位,在進貨明細中有產品編號,單價,數量,小計…等的欄位。 1和2是master和detail的關係,在產品資料表的平均進貨價的欄位,這個欄位希望能帶出這個產品(用產品編號來關聯)最後三次進貨的平均價(用進貨明細中的單價欄位來做平均),不知道這個sql要如何下? 謝謝
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-31 13:29:44 IP:61.221.xxx.xxx 未訂閱
引言: 最後三次進貨的平均價(用進貨明細中的單價欄位來做平均),不知道這個sql要如何下?
alice100001你好: 基本上sql語法無法滿足你的需求.. 1.每個進貨單應該產品只有一樣吧!! 2.要平均最後3次那就把產品最後進貨的那3筆先找出來在除以3
------
======================
昏睡~
不昏睡~
不由昏睡~
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-31 15:40:32 IP:61.219.xxx.xxx 未訂閱
引言: 請問各位高手: 我想寫一個可以計算最後三次進貨的進貨價的平均值,請問這個sql要怎麼寫?
妳用什麼資料庫 ? /* 使用中文很辛苦,中華男兒當自強 */
andycheng
一般會員


發表:3
回覆:10
積分:2
註冊:2002-12-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-31 17:06:47 IP:218.16.xxx.xxx 未訂閱
这样行不行: 假设进货明细库有自动加1字段a1: update 产品资料库 set 平均进货价=(select sum(top 3 进货价)/3 from 进货明细库 order by a1 desc) 我的机器突然不能连接服务器,没法试,你试试看。
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-31 17:44:23 IP:203.204.xxx.xxx 未訂閱
andycheng謝謝你的回答,不過我試了以後,每次都有“少了運算元”的錯誤訊息。我用的是access資料庫,不知道是不是access不能用這種sql?
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-31 19:40:56 IP:203.204.xxx.xxx 未訂閱
謝謝各位高手的幫忙,我試成功了2個方法,以下是我下的sql(只有選擇的部份): 1.SELECT (Max(P1.進貨單價) Max(P2.進貨單價) Max(P3.進貨單價))/3 AS AVG_PRICE FROM 進貨明細表 P1, 進貨明細表 P2, 進貨明細表 P3 WHERE (((P1.送貨單號)>P2.PurchaseID And (P1.進貨單號)>P3.進貨單號) And ((P2.進貨單號)>P3.進貨單號) And ((P1.產品編號)='00001')); 上面這個方法,我不太明白為何要加上Max?可否請高手們解答。 2.SELECT Avg(進貨單價) AS AVG_PRICE FROM 進貨明細表 WHERE (((進貨明細表.進貨單號) In (SELECT TOP 3 進貨單號 FROM 進貨明細表 ORDER BY 進貨單號 DESC)));
系統時間:2024-06-27 0:18:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!