日期:2014-05-19  浏览次数:20440 次

帮忙看个sql啊
ID               FlightID   AirCompany                   Price         FlyDate       AirLne
251 CA1133 中国国际航空公司 330 2007-7-14 北京-运城
252 CA1139 中国国际航空公司 330 2007-7-14 北京-运城
253 CA1133 中国国际航空公司 330 2007-7-15 北京-运城
254 CA1139 中国国际航空公司 330 2007-7-15 北京-运城

我想要的结果是

NewID     NewCompany               NewPirce     NewFlydate                       NewAirLine
1             中国国际航空公司   330               2007-7-14,2007-7-15   北京-运城

结果可以新建个临时表然后插进去
可是我做了半天总是重复的
CA     07   14   2007   12:00AM,07   14   2007   12:00AM,07   15   2007   12:00AM,07   15   2007   12:00AM
都是有2个14号,和2个15号



------解决方案--------------------
CREATE FUNCTION dbo.f_str(@col1 varchar(50))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+convert(varchar(10),FlyDate,120)--这个FlyDate 写成datetime就报错啊
FROM (select distinct FlyDate from table
WHERE substring(AirID,1,2)=@col1
) as t
RETURN(STUFF(@re,1,1, ' '))
END

------解决方案--------------------
CREATE FUNCTION dbo.f_str(@col1 varchar(50))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+convert(varchar(10), FlyDate, 120)
FROM table
WHERE substring(AirID,1,2)=@col1
RETURN(STUFF(@re,1,1, ' '))
END