我在表Index_tbl
date
,brand
和Index
中有3列。日期从26/1/2012开始,品牌A和18/2 / 2013 for Brand B.Now我必须在2012年1月1日开始日期之前的所有日期为“A”品牌插入行,索引为“0”。如何一次性完成此操作。有27个品牌,每个日期写一个insert
是很麻烦的。
Declare @min_date
set @min_date=select min(dt) from temp_tm_data_final_4 where brand='A'
while (min_date > 2012-01-01 00:00:00.000)
BEGIN
Insert into temp_tm_data_final_4
(date,brand,Index)
values
(dateadd(day,-1,@min_date),'A',0)
END
答案 0 :(得分:0)
以下查询将满足您的要求:
Declare @min_date
set @min_date=select min(dt) from temp_tm_data_final_4 where brand='A'
;WITH CTE AS
(
SELECT DATEADD(day,-1,@min_date) Dates
UNION ALL
SELECT DATEADD(day,-1,Dates)
FROM CTE
WHERE DATEADD(day,-1,Dates) > '2012-01-01 00:00:00.000'
)
INSERT into temp_tm_data_final_4 (date,brand,Index)
SELECT Dates,'A',0
FROM CTE