iT邦幫忙

0

MSSQL依同產品筆數作平均售價

sql
匿名 2012-03-01 11:32:364904 瀏覽

請問假如有
SELECT 品號,年月,售價
FROM 每月統計檔
顯示為
品號 年月 售價
AA 201112 100
BB 201112 80
AA 201201 110
CC 201201 60
AA 201202 90
BB 201202 90
CC 201202 70

要如何讓它依同品號售價加總後除於筆數
結果如下
品號 平均售價
AA 100
BB 85
CC 65

8
Albert
iT邦高手 1 級 ‧ 2012-03-01 12:46:38
最佳解答

SELECT aa.品號, aa.售價/aa.筆數
( SELECT 品號, SUM(售價) AS 售價, COUNT(*) AS 筆數
FROM 每月統計檔
GROUP BY 品號 ) aa
WHERE aa.筆數 > 0

SAP B1 報表 與 查詢 大量使用 MSSQL
歡迎大家技術交流

技術轉移顧問
Albert

看更多先前的回應...收起先前的回應...
Albert iT邦高手 1 級 ‧ 2012-03-01 12:47:43 檢舉

SELECT aa.品號, aa.售價/aa.筆數 FROM

(少了 FROM )

Albert iT邦高手 1 級 ‧ 2012-03-01 14:38:41 檢舉

因沒筆數這個資料

count(*) 就是筆數 不需有欄位
除非你只算有單價的欄位
count(單價) as 筆數

Albert iT邦高手 1 級 ‧ 2012-03-01 14:40:14 檢舉

開個更複雜的
ERP 進產銷耗存表 月平均成本結算表

Albert iT邦高手 1 級 ‧ 2012-03-01 14:40:15 檢舉

開個更複雜的
ERP 進產銷耗存表 月平均成本結算表

6
wiseguy
iT邦超人 1 級 ‧ 2012-03-01 14:10:28
<pre class="c" name="code">select 品號,sum(售價)/count(*) as 平均售價 from 每月統計檔 group by 品號
6
一級屠豬士
iT邦高手 1 級 ‧ 2012-03-02 09:49:37
<pre class="c" name="code">
用MySQL測試一下...
CREATE TABLE ithelp120302 (
PartID CHAR(2) NOT NULL,
SaleDate CHAR(6) NOT NULL,
Price INT NOT NULL,
PRIMARY KEY (PartID, SaleDate)
);

INSERT INTO ithelp120302 VALUES
('AA', '201112', 100),
('BB', '201112', 80),
('AA', '201201', 110),
('CC', '201201', 60),
('AA', '201202', 90),
('BB', '201202', 90),
('CC', '201202', 70);

SELECT PartID, AVG(Price)
FROM ithelp120302
GROUP BY PartID;

+--------+------------+
| PartID | AVG(Price) |
+--------+------------+
| AA     |   100.0000 |
| BB     |    85.0000 |
| CC     |    65.0000 |
+--------+------------+

我要發表回答

立即登入回答