sql while循环复制结果

时间:2014-09-12 08:30:56

标签: sql loops while-loop

我有一个相当大而复杂的查询来解决工作中的人,生病等问题。如果我想看到它1天,那么效果很好,但我需要允许用户查看多天。

我添加了一个startdate和enddate参数,并查看了在sql while循环中构建每次更改开始日期并将值写入临时表,以便我可以在最后将它们拉出来。这可能不是最好的方法。

我已经使循环工作,但是它会像下面的例子一样重复结果:

数据的外观如何:

  

日期:价值

     

01/01/2014 1

     

02/01/2014 2

     

03/01/2014 3

如何导出数据:

  

日期:价值

     

01/01/2014 1

     

02/01/2014 1

     

02/01/2014 2

     

03/01/2014 1

     

03/01/2014 2

     

03/01/2014 3

这是我找到的循环示例,我在中间使用了自己的sql代码。我的sql代码只使用传入的startdate参数。

我是否应该使用不同类型的循环,或者我错过了什么来阻止重复?任何建议欢迎,因为我不知道如何停止循环这样做。它会带回我只需要排除重复数据的正确数据。

我的代码和循环的结构,但不是完整的例子,因为中间的代码很长:

CREATE TABLE #TestTable1
(
Date DATETIME
Value int
);


declare @startdate datetime
declare @enddate datetime

while @startdate <= @enddate

BEGIN

(My Sql Code is placed here and uses the @startdate parameter)

INSERT INTO #TestTable1(Date, value)
select * from (uses allot of temp tables and cte from the code i have used.)


SET @startdate = DATEADD(DAY, 1, @startdate)
END 


select * from #TestTable1

drop table #TestTable1

0 个答案:

没有答案