我有一張表格告訴我一件設備的開始和結束「保留日期」。我想創建並填充一個新表格,填入所有「日期之間」以及特定項目的開始日期和結束日期。新表應包括以下幾列:如何在給定開始日期和結束日期之間填充「日期之間」
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