如何包装以下CTE,以便我可以将其输出与语句中的插入一起使用



我正在使用SQL Server 2012,并且我有以下T-SQL查询,该查询正常:

;WITH N(N)AS 
(SELECT 1 FROM(VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))M(N)),
tally(N)AS(SELECT 1 FROM N,N a,N b,N c,N d)
SELECT
       Mkt,
       Property,
       Season,
       b.Date,
       TName,
FROM Table1 a
CROSS APPLY
( 
  SELECT top(datediff(d,Datefrom,case when DateTo >= DateFrom
             then dateadd(d, 1, DateTo) else DateFrom end))
    DATEADD(d,row_number()over(order by 1/0)-1, DateFrom) Date
  FROM tally
) b

我需要将上述查询的输出插入另一个表中(我们称其为 Table2(。

如何用INSERT INTO语法包装上述查询?

您需要像下面一样使用。检查此行..插入您的tableName(Col1,col2 .....(定义了您的taberamame和columnNames ..

;WITH N(N)AS 
(
    SELECT 1 FROM(VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))M(N)
),
tally(N) AS
(
    SELECT 1 FROM N,N a,N b,N c,N d
)
INSERT INTO yourTableName(col1,col2.....)
SELECT
       Mkt,
       Property,
       Season,
       b.Date,
       TName,
FROM Table1 a
CROSS APPLY
( 
  SELECT top(datediff(d,Datefrom,case when DateTo >= DateFrom
             then dateadd(d, 1, DateTo) else DateFrom end))
    DATEADD(d,row_number()over(order by 1/0)-1, DateFrom) Date
  FROM tally
) b

最新更新