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

SQL 一問 (加總問題)

尚未結案
isthatu
初階會員


發表:80
回覆:47
積分:25
註冊:2002-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-14 21:04:15 IP:211.20.xxx.xxx 未訂閱
假設 我有TABLE1 欄位為(DATE TYPE A1 A2) 分別代表 (日期 種類 單價 數量) 那嚜 SELECT DATE,TYPE,A1,A2,(A1*A2) TOTAL FROM TABLE1 可以得到 (日期 種類 單價 數量 總價)的資料 但如果我要在每列資料中 再去統計相同(種類) 在(當天日期含當日)的累計數量 及累計總價 我會利用做加總 SELECT SUM(A2),SUM(A1*A2) FORM TABLE1 WHERE DATE <=(日期) 但是 如何把兩個SQL組成一個變成以下欄位? ----日期---種類--單價--數量--總價--累計數量--累計總價 --0940101--花瓶---50----2----100------2--------100 --0940102--花瓶---50----3----150------5--------250 --0940103--花瓶---50----9----450-----16--------800 希望大家指教!
------
BCDEFHIJKLMNOPQRSTUVWXZ
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-15 08:49:03 IP:210.65.xxx.xxx 未訂閱
Hi isthatu,    資料少時可以這樣做,但資料若很多,效能可能不太好!
SELECT  DT,
        TYPE,
        PRICE,
        QTY, QTY * PRICE AS AMOUNT,
       (SELECT  SUM(QTY)
        FROM    TABLE2 T1
        WHERE   T1.DT <= T.DT AND T1.TYPE = T.TYPE) AS ADD_QTY,
       (SELECT  SUM(QTY * PRICE)
        FROM    TABLE2 T1
        WHERE   T1.DT <= T.DT AND T1.TYPE = T.TYPE) AS ADD_AMOUNT
FROM    TABLE2 T
PS:確認 DT Type 必須為 Unique Key,否則累計加種可能會有錯誤 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
lutienlung
一般會員


發表:3
回覆:5
積分:1
註冊:2005-04-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-19 12:50:54 IP:202.39.xxx.xxx 未訂閱
同Fishman大哥的方法, 在mssql2000底下, 考慮多筆資料的作法. declare @tmp table ( date_ datetime, type_ varchar(20), price_ numeric(20,5), qty_ numeric(20,5) ) INSERT INTO @tmp SELECT '2005/9/1', '花瓶', 50, 2 UNION ALL SELECT '2005/9/2', '花瓶', 50, 3 UNION ALL SELECT '2005/9/3', '花瓶', 50, 9 declare @tmp2 table ( date_ datetime, type_ varchar(20), amount_ numeric(20,5), total_ numeric(20,5) ) INSERT INTO @tmp2 SELECT a.date_, a.type_, sum(b.qty_), sum(b.price_*b.qty_) FROM @tmp a, @tmp b WHERE a.type_ = b.type_ and b.date_<= a.date_ GROUP BY a.date_, a.type_ SELECT a.*, b.amount_, b.total_ FROM @tmp a, @tmp2 b WHERE a.date_ = b.date_ AND a.type_ = b.type_ ORDER BY a.type_, a.date_ ------------------------ 小小看法 不好意思喔! ------------------------
系統時間:2024-11-25 9:12:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!