我有一张表格告诉我一件设备的开始和结束“保留日期”。我想创建并填充一个新表格,填入所有“日期之间”以及特定项目的开始日期和结束日期。新表应包括以下几列:如何在给定开始日期和结束日期之间填充“日期之间”
Item Name conferencename reserved dates
我有一张表格告诉我一件设备的开始和结束“保留日期”。我想创建并填充一个新表格,填入所有“日期之间”以及特定项目的开始日期和结束日期。新表应包括以下几列:如何在给定开始日期和结束日期之间填充“日期之间”
Item Name conferencename reserved dates
我可能是唯一一个谁发现这个问题挺有意思( - 只是不完美的解释)。
这是一个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
谢谢Steve,我不是一个真正的开发人员,我只是写一次查询在一段时间内,也许我做了一个糟糕的工作,解释我想要什么。但是,当我在小提琴上进行检查时,它确实看起来像我想要的。谢谢,我会在我的系统中试用它。 – user2363530 2013-05-09 13:43:16
Steve,在触发器中使用游标是个好主意吗? – user2363530 2013-05-09 15:06:46
你的意思是这样它填充行日志添加到注册表日期日志表?是的,应该可行 - 但要记住,如果可能的话,您可能需要额外的脚本来处理更新和删除操作。 – 2013-05-09 15:50:07
你的问题是什么?你的查询到目前为止是什么样的? – LittleBobbyTables 2013-05-08 18:26:43
到目前为止,我还没有创建一个查询。我的问题是“日期范围从表格中的两个日期之间的日期范围和更新一个表,开始,结束日期之间” – user2363530 2013-05-08 18:32:26
这不是一个问题,这是一个词串在一起,有点类似于一个句子。你需要清楚地说明问题,展示你已经做了什么来帮助自己,然后告诉我们你的方式是什么,以便我们可以帮助你解决具体问题 – 2013-05-08 18:57:06