我有一张表告诉我一件设备的开始和结束“保留日期”。我想创建并填充一个新表,填写所有“日期之间”以及特定项目的开始和结束日期。新表应包括以下列:
Item Name conferencename reserved dates
答案 0 :(得分:0)
我可能是唯一一个发现这个问题非常有趣的人( - 只是没有完美解释)。
这是一个SQL Fiddle Demo,它显示了使用游标填充日期的一种方法。我相信你要求的脚本部分如下所示:
CREATE TABLE EquipmentLog
([Item Name] varchar(255),
conferencename varchar(255),
[reserved dates] datetime);
DECLARE @Item_Name varchar(255),
@conferencename varchar(255),
@start_reserve_date datetime,
@end_reserve_date datetime,
@reserve_date datetime
DECLARE cur CURSOR FAST_FORWARD
FOR
SELECT * FROM EquipmentRegister
OPEN cur
FETCH NEXT FROM cur
INTO @Item_Name, @conferencename, @start_reserve_date, @end_reserve_date
WHILE (@@FETCH_STATUS=0)
BEGIN
SET @reserve_date = @start_reserve_date
WHILE (@reserve_date <= @end_reserve_date)
BEGIN
INSERT INTO EquipmentLog
SELECT @Item_Name, @conferencename, @reserve_date
SELECT @reserve_date = DATEADD(day, 1, @reserve_date)
END
FETCH NEXT FROM cur
INTO @Item_Name, @conferencename, @start_reserve_date, @end_reserve_date
END
CLOSE cur
DEALLOCATE cur