【发布时间】:2020-06-22 03:52:04
【问题描述】:
我有一个像这样的临时表结构@temp2
route total driverID
------------------------
10B 300
7B 400
并希望添加driverID 列,其结果类似于5555, 68989
为此,我使用光标循环另一个表,如下所示
driverID routeNo
-------------------
5555 10B
68989 10B
72000 7B
这里是代码
declare @driverID varchar(max)
declare @routeNew varchar(20)
DECLARE brand_cursor CURSOR FOR
select distinct driver_id, route_number from [dbcwl].[dbo].[collection_deduction_summary]
where YEAR(trans_date) = @year
and MONTH(trans_date) = @month
and route_number in (select actual_route from [dbcwl].[dbo].[livedispatchingdata_pmhs_daily_summary] where status = 'OK' and YEAR(trans_date) = @year AND month(trans_date) = @month )
and vehicle_id in (select vehicle_id from [dbcwl].[dbo].[livedispatchingdata_pmhs_daily_summary] where status = 'OK' and YEAR(trans_date) = @year AND month(trans_date) = @month )
group by route_number, driver_id
OPEN brand_cursor
FETCH NEXT FROM brand_cursor
INTO @driverID, @routeNew
WHILE @@FETCH_STATUS = 0
BEGIN
--update @temp2
update @temp2 set driverID += ','+ @driverID where routeNo = @routeNew;
FETCH NEXT FROM brand_cursor
INTO @driverID, @routeNew
END
CLOSE brand_cursor;
DEALLOCATE brand_cursor;
遗憾的是,我得到 driverID 列为空
并且希望最终的临时表看起来像这样:
route total driverID
------------------------
10B 300 5555,68989
7B 400 72000
【问题讨论】:
标签: sql sql-server cursor concat temp-tables