涉及表
我想创建带有日期时间参数的数据集,当用户选择日期时,它会自动从日期表中选择数据,如图(动态表名称)。
创建的SP如图所示
已经使用方法存储过程,但是在将存储过程与另一个表连接时遇到了麻烦。您能建议解决这个问题的最佳方法吗?
将每一天存储在单独的表中可能不是最好的方法,但稍后会详细介绍,以解决眼前的问题....
您可以将 SP 的结果转储到临时表中并加入其中。
我在这里假设您的
SensorDataRainfall
表(没有日期的表)与带有日期的表具有相同的结构。
您的数据集查询将如下所示。
SELECT TOP 0 * INTO #SDR FROM dbo.SensorDataRainfall -- create an empty table to put the results in.
INSERT INTO #SDR EXEC spGetDataRainfall @year, @month -- dump data from the SP
SELECT *
FROM #SDR a
JOIN myOtherTable b on a.column = b.column
但是 您的一般方法存在一些问题。
拥有本质上是按日期分割的相同数据的数据不太可扩展,即使数据量非常小,这也不是一个好方法。您可能应该首先调查创建这些表的过程,并将数据插入到具有相同结构但还包含年份和月份列的表中。这样,所有数据都将在一个表中,并且可以轻松查询单个月或多个月、数年的数据。
您可以使用表函数。您可以与另一张桌子一起加入T.F。
CREATE FUNCTION [dbo].[fn_test]
(
--INPUT PARAMETERS
)
RETURNS @output TABLE(ID NVARCHAR(MAX))
BEGIN
INSERT INTO @output (ID)
EXEC('SELECT 1 AS A')
RETURN
END