--这个讨论好多次了,函数解决比较好!
--测试数据
Create table t (id varchar(5),公司 varchar(6),职员 varchar(4),金额 money)
insert into t select 'F0001','A公司','王三',100
union all select 'F0001','A公司','李杰',200
union all select 'F0001','B公司','张静',300
union all select 'F0002','A公司','李五',150
union all select 'F0002','C公司','赵为',350
--函数
Create function F_TGetStr(@Item as varchar(10),@bit bit)
returns varchar(200)
as
begin
declare @s as varchar(200)
set @s=''
if @bit=0
begin
select @s=@s+','+ltrim(rtrim(公司)) from
(select distinct 公司 from T where id=@item)
A
end
if @bit=1
begin
select @s=@s+','+ltrim(rtrim(职员)) from
(select distinct 职员 from T where id=@item)
A
end
return stuff(@s,1,1,'')
end--查询
select id,公司=dbo.F_TGetStr(id,0),职员=dbo.F_TGetStr(ID,1),金额=sum(金额)
from t group by ID
--结果
id 公司 职员 金额
----- -------------------- -------------------- ---------------------
F0001 A公司,B公司 李杰,王三,张静 600.0000
F0002 A公司,C公司 李五,赵为 500.0000(所影响的行数为 2 行)--删除环境和函数
drop table T
drop function F_TGetStr
--测试数据
Create table t (id varchar(5),公司 varchar(6),职员 varchar(4),金额 money)
insert into t select 'F0001','A公司','王三',100
union all select 'F0001','A公司','李杰',200
union all select 'F0001','B公司','张静',300
union all select 'F0002','A公司','李五',150
union all select 'F0002','C公司','赵为',350
--函数
Create function F_TGetStr(@Item as varchar(10),@bit bit)
returns varchar(200)
as
begin
declare @s as varchar(200)
set @s=''
if @bit=0
begin
select @s=@s+','+ltrim(rtrim(公司)) from
(select distinct 公司 from T where id=@item)
A
end
if @bit=1
begin
select @s=@s+','+ltrim(rtrim(职员)) from
(select distinct 职员 from T where id=@item)
A
end
return stuff(@s,1,1,'')
end--查询
select id,公司=dbo.F_TGetStr(id,0),职员=dbo.F_TGetStr(ID,1),金额=sum(金额)
from t group by ID
--结果
id 公司 职员 金额
----- -------------------- -------------------- ---------------------
F0001 A公司,B公司 李杰,王三,张静 600.0000
F0002 A公司,C公司 李五,赵为 500.0000(所影响的行数为 2 行)--删除环境和函数
drop table T
drop function F_TGetStr
解决方案 »
- sql server 2005 exp: 客户端没有所需的特权。
- sql触发器问题
- 如果中文字符是通过参数传入存储过程执行,如何在存储过程中达到“insert into t(a, b) values(N'简体', N'繁体')”的效果?
- 请问如何用java 往sql server2000中的text字段存大约300k的数据?
- 数据查询问题
- HELP! HELP! HELP ! pengdali(大力) pengdali(大力) 进来看看!
- 求语句!从第几行取几行的语句!
- 两个数据库间的同步问题
- 新手提问:如何将Excel中的数据导入SQL SERVER
- sql server 7.0问题.....,请各位大虾帮帮忙,小弟急..
- 开发数据库管理程序,是在数据库中设各种约束好呀? 还是在程序中进行管理好呀?
- 存储过程的问题,
http://community.csdn.net/Expert/topic/4186/4186501.xml?temp=.6206324
一句比较复杂的SQL语句不知如何写?又有字符合并,又有数值相加!具体见内!谢谢!