如何为给定范围内的每一天创建一个新的温度 table?
How can I create a new temp table for each day given in a range?
我需要根据示例
中给出的天数创建临时 table
我需要 tables 2015-06-08
到 2015-06-29
,我将创建 22 个临时 tables,每个都有自己的日期数据。
我的查询将 select 数据循环输入到这些临时 table 中,唯一需要更改的是日期。
因为这里的每个人都建议你不需要每个日期的 table 而是每个日期的 table 中的一行,而且你不一定需要存储结果进入温度 table.
您可以编写生成此日期范围的查询,并将现有查询与日期范围查询的结果结合起来。
存储查询结果有利于人们直观地查看数据,但如果您有查询,sql 服务器不需要临时 table 中的数据来继续进行数据处理你知道它会产生一个特定的结果集,你可以加入另一个 table 与那个结果集,你在运行时看不到结果集但是 sql 服务器在运行时获取那个结果集并加入它用你的 table.
现在,如果我已经说服您不需要每个日期的临时 table,那么希望我们来谈谈解决方案。
您只需要一个查询,它会生成一个日期范围为 2015-06-08
到 2015-06-29
的结果集,为此您可以执行以下操作:
DECLARE @From DATE = '2015-06-08'
DECLARE @To DATE = '2015-06-29'
SELECT Dates
FROM
(
SELECT TOP (DATEDIFF(DAY,@From , @To))
DATEADD(DAY ,
ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
,@To) AS Dates
FROM master..spt_values
)Dates_Table
以上查询将生成一个带有日期的结果集,现在您可以将另一个 table 与该结果集连接起来以获得您需要的最终结果。
我需要根据示例
中给出的天数创建临时 table我需要 tables 2015-06-08
到 2015-06-29
,我将创建 22 个临时 tables,每个都有自己的日期数据。
我的查询将 select 数据循环输入到这些临时 table 中,唯一需要更改的是日期。
因为这里的每个人都建议你不需要每个日期的 table 而是每个日期的 table 中的一行,而且你不一定需要存储结果进入温度 table.
您可以编写生成此日期范围的查询,并将现有查询与日期范围查询的结果结合起来。
存储查询结果有利于人们直观地查看数据,但如果您有查询,sql 服务器不需要临时 table 中的数据来继续进行数据处理你知道它会产生一个特定的结果集,你可以加入另一个 table 与那个结果集,你在运行时看不到结果集但是 sql 服务器在运行时获取那个结果集并加入它用你的 table.
现在,如果我已经说服您不需要每个日期的临时 table,那么希望我们来谈谈解决方案。
您只需要一个查询,它会生成一个日期范围为 2015-06-08
到 2015-06-29
的结果集,为此您可以执行以下操作:
DECLARE @From DATE = '2015-06-08'
DECLARE @To DATE = '2015-06-29'
SELECT Dates
FROM
(
SELECT TOP (DATEDIFF(DAY,@From , @To))
DATEADD(DAY ,
ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
,@To) AS Dates
FROM master..spt_values
)Dates_Table
以上查询将生成一个带有日期的结果集,现在您可以将另一个 table 与该结果集连接起来以获得您需要的最终结果。