一个数据访问的问题
我想做一个出差统计的查询程序。有一个表是这样的
table1
出差id,出发日期,回来日期
1 ,20060601,20060602
一个人员表
user
人员id,人名
1 , 张三
2 ,李四
3 ,王五
一个出差和人员对应的多对多的表
table2
出差id,人员id
1 ,1
1 ,3
2 ,1
2 ,2
3 ,3
4 ,1
4 ,2
4 ,3
我想生成一个表内容如下:
出差id,出发日期,回来日期,人员
1 ,20060601,20060602,张三 王五
2 ,----,----,张三 李四
如何实现呢???
谁能帮我看看!!!
[解决办法]
-- 函数
CREATE FUNCTION dbo.f_str(
@出差id int
)RETURNS varchar(8000)
AS
BEGIN
DECLARE @re varchar(8000)
SET @re = ' '
SELECT @re = @re + ', ' + A.人名
FROM 人员表 A, table2 B
WHERE A.人员id = B.人员id
AND B.出差id = @出差id
RETURN(STUFF(@re, 1, 1, ' ')
END
GO
以后调用函数查询即可
SELECT *, 人员 = dbo.f_str(出差id) FROM table1