我有一个相当大而复杂的查询来解决工作中的人,生病等问题。如果我想看到它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