MS-SQL 語法,是否能做出累計效果 |
尚未結案
|
deemster04
一般會員 發表:9 回覆:5 積分:2 註冊:2005-03-09 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
您好
在sql-2000以前並無直接語法,我是用以下方式達到,看看適不適合您的情況? [code sql] declare @temp table(dd char(2),amt int) insert @temp select '01',20 union select '02',10 union select '03',40 union select '01',5 SELECT a1.dd, a1.amt, sum(a2.amt) progamt FROM (select dd,sum(amt) amt from @temp group by dd) a1, (select dd,sum(amt) amt from @temp group by dd) a2 WHERE a1.dd >= a2.dd group by a1.dd, a1.amt order by a1.dd [/code] |
deemster04
一般會員 發表:9 回覆:5 積分:2 註冊:2005-03-09 發送簡訊給我 |
感謝pedro大大的回復
剛剛看了一下您的答復,是能解決累計的問題.不過由于必須要將很多欄位同時都列出來 所以可能沒有辦法利用這樣的語法完成.不過也謝謝大大,讓我多學了一招. ===================引 用 pedro 文 章=================== 您好 在sql-2000以前並無直接語法,我是用以下方式達到,看看適不適合您的情況? [code sql] declare @temp table(dd char(2),amt int) insert @temp ? select '01',20 ? union ? select '02',10 ? union ? select '03',40 ? union ? select '01',5 SELECT a1.dd, a1.amt, sum(a2.amt) progamt FROM ? (select dd,sum(amt) amt from @temp group by dd) a1, ? (select dd,sum(amt) amt from @temp group by dd) a2 WHERE a1.dd >= a2.dd group by a1.dd, a1.amt order by a1.dd [/code] ? |
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
多一層join 不行嗎?
select TableA .* , TableB.amt, TableB.progamt From TableA Join ( SELECT a1.dd, a1.amt, sum(a2.amt) progamt FROM (select dd,sum(amt) amt from @temp group by dd) a1, (select dd,sum(amt) amt from @temp group by dd) a2 WHERE a1.dd >= a2.dd group by a1.dd, a1.amt ) TABLEB on TableA.dd = TABLEB.dd Order By TableA.dd ===================引 用 deemster04 文 章=================== 感謝pedro大大的回復 剛剛看了一下您的答復,是能解決累計的問題.不過由于必須要將很多欄位同時都列出來 所以可能沒有辦法利用這樣的語法完成.不過也謝謝大大,讓我多學了一招. ===================引 用 pedro 文 章=================== 您好 在sql-2000以前並無直接語法,我是用以下方式達到,看看適不適合您的情況? [code sql] declare @temp table(dd char(2),amt int) insert @temp ? select '01',20 ? union ? select '02',10 ? union ? select '03',40 ? union ? select '01',5 SELECT a1.dd, a1.amt, sum(a2.amt) progamt FROM ? (select dd,sum(amt) amt from @temp group by dd) a1, ? (select dd,sum(amt) amt from @temp group by dd) a2 WHERE a1.dd >= a2.dd group by a1.dd, a1.amt order by a1.dd [/code] ?
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |