質問の回答は です。私はこれをCursorを使用して試しました。それは正常に動作しています。また
CREATE TABLE product
(
product_id int
,INTRODUCED_DATE DATETIME
,WITHDRAWAL_DATE DATETIME
)
INSERT INTO product VALUES (100,'01-01-2011','01-05-2011')
INSERT INTO product VALUES (200,'05-30-2011','06-05-2011')
CREATE TABLE PRODUCT_ALL_DATES
(
product_id int
,Dates_Active DATETIME
)
DECLARE @product int
,@Introduct_Date DATETIME
,@Withdrawal_date DATETIME
,@Dates_Active DATETIME
DECLARE pointer_cur CURSOR FAST_FORWARD
FOR
SELECT * FROM product a
OPEN pointer_cur
FETCH NEXT FROM pointer_cur
INTO @Product,@Introduct_Date,@Withdrawal_date
WHILE(@@FETCH_STATUS=0)
BEGIN
WHILE(@Introduct_Date<[email protected]_date)
BEGIN
SET @[email protected]_Date
INSERT INTO PRODUCT_ALL_DATES
SELECT @product,@Dates_Active
SELECT @Introduct_Date=dateadd(day,1,@Introduct_Date)
END
FETCH NEXT FROM POINTER_CUR
INTO @Product,@Introduct_Date,@Withdrawal_date
END
CLOSE POINTER_CUR
DEALLOCATE POINTER_CUR
SELECT * FROM PRODUCT_ALL_DATES
[2つの日付の間の日付のリストを取得します]の可能な複製(http://stackoverflow.com/questions/510012/get-a-list-of-dates-between-two-dates) –
チェックアウトの価値:[SQLで2つの指定された日付間のすべての日付を表示する方法](http://stackoverflow.com/questions/1490566/how-to-display-all-the-dates-between-two-given-dates -in-sql) –