T-SQL 字串累加問題 |
尚未結案
|
romi
一般會員 發表:5 回覆:3 積分:1 註冊:2007-11-21 發送簡訊給我 |
各位好!
我用的是 MS-SQL, 有一個T-SQL字串累加的問題 : 在 table 中有 Date / Remark / Qty 三個欄位; 希望整理成下列的 [希望結果] : 資料本身 : Date / Remark / Qty 20080101 / A / 1 20080101 / B / 2 20080101 / C / 3 20080102 / A / 4 20080102 / D / 1 希望結果 : 20080101 / ABC / 6 20080102 / AD / 5 如果是數值相加很簡單 select Date,sum(Qty) from Table group by Date 但是字串 (String) 無法用 sum 指令加總. 我試過以 cursor 的方式來累加字串; 沒有問題, 但效率很不理想, 是否有 cursor 之外的方式? 請各位高手不吝賜教!謝謝! b.rgds Romi
------
Romi |
kaida
中階會員 發表:4 回覆:35 積分:52 註冊:2003-03-02 發送簡訊給我 |
[code sql] create table tb([Date] varchar(8), [Remark] varchar(20), [Qty] int) insert into tb select '20080101','A',1 union all select '20080101','B',2 union all select '20080101','C',3 union all select '20080102','A',4 union all select '20080102','D',1 create function F_StrCat(@Date varchar(8)) returns nvarchar(100) as begin declare @S nvarchar(100) select @S=isnull(@S ',','') [Remark] from Tb where [Date]=@Date return @S end go select [Date], dbo.F_StrCat([Date]) [Remark], sum([Qty]) [Qty] from tb group by [Date] /* Date Remark Qty 20080101 A,B,C 6 20080102 A,D 5 */ [/code] |
kaida
中階會員 發表:4 回覆:35 積分:52 註冊:2003-03-02 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |