create function getstr(@分店名称 varchar(20),@职位 varchar(20))
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+' '+rtrim(人员名单) from 表
where 分店名称=@分店名称 and 职位=@职位
set @str=right(@str,len(@str)-1)
return @str
end
go语句:
select 分店名称,职位,count(*) 人数,dbo.getstr(分店名称,职位) 人员名单 from 表 group by 分店名称,职位
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+' '+rtrim(人员名单) from 表
where 分店名称=@分店名称 and 职位=@职位
set @str=right(@str,len(@str)-1)
return @str
end
go语句:
select 分店名称,职位,count(*) 人数,dbo.getstr(分店名称,职位) 人员名单 from 表 group by 分店名称,职位
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+' '+rtrim(人员名单) from 表
where 分店名称=@分店名称 and 职位=@职位
set @str=right(@str,len(@str)-1)
return @str
end
go语句:
select 分店名称,职位,count(*) 人数,dbo.getstr(分店名称,职位) 人员名单 from 表 group by 职位,分店名称注意group by的职位和分店名称顺序
记得上次也是你帮我,做了一道难题,我会给你满分的,别急
不过我的数据库是用Access做的,我不知道如何在Access中实现该查询。
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.mdb";User ID=Admin;Password=')...YourTable
set nocount on
declare @YourResultTable table (id int, value varchar(10))
insert @YourResultTable values(1, 'cool')
insert @YourResultTable values(1, 'nice')
insert @YourResultTable values(1, 'wow')
insert @YourResultTable values(2, 'cool')
insert @YourResultTable values(2, 'wow')
insert @YourResultTable values(3, 'cool')
insert @YourResultTable values(3, 'nice')
insert @YourResultTable values(4, 'nice')
select * from @YourResultTable
declare
@z varchar(100),
@Step int,
@q intselect @Step = 0, @q = 0declare @ProcessTable table (id int, value varchar(100), ProcessStep int)
insert @ProcessTable
select id, value, 0
from @YourResultTable
order by id, valueupdate @ProcessTable
set @z = value = case @q when id then @z else '' end + value +
',' ,
@q = @q + case @q when id then 0 else 1 end,
@Step = ProcessStep = @Step + 1
from @ProcessTableselect *
from @ProcessTable t
join (select max(ProcessStep) MaxStep
from @ProcessTable
group by id) x
on ProcessStep = MaxStepset nocount off