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

T-SQL 字串累加問題

尚未結案
romi
一般會員


發表:5
回覆:3
積分:1
註冊:2007-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-28 16:40:52 IP:218.160.xxx.xxx 訂閱
各位好!
我用的是 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-06 08:43:56 IP:220.160.xxx.xxx 訂閱

[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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-06 08:50:36 IP:220.160.xxx.xxx 訂閱
如果 Remark 不用逗号分开,可把自定义函数改为:
[code sql]
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

[/code]
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-17 14:41:53 IP:122.116.xxx.xxx 未訂閱
您好,
時間已久遠, 可能您已經得到解答,
若有需要, 請您參考一下後來的一個討論
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=96440
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
系統時間:2024-05-06 17:23:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!