我需要使用日期范围/任何列的提示输入作为信息链接的修改后的SQl功能中的变量。我有一些使用多个条件的复杂查询,我无法将它们保留在视图中,并希望使用此变量在修改后的SQL中添加这些条件。
这是一个示例SQL,我需要使用变量/参数而不是给定的日期
SELECT xxxxx.yyyy
FROM xxxxx, xxxxx, xxxxx, xxxxx
WHERE xxxxx.yyyyy = xxxxx.yyyyy
AND ( (( xxxxx.yyyy >= (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
AND xxxxx.yyyy < (TO_DATE ('12/1/2015', 'MM/DD/YYYY'))
AND xxxxx.zzzzz >= (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
AND xxxxx.zzzzz < (TO_DATE ('12/1/2015', 'MM/DD/YYYY')) ))
OR (( xxxxx.zzzzz >= (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
AND xxxxx.zzzzz < (TO_DATE ('12/1/2015', 'MM/DD/YYYY'))
AND xxxxx.yyyy = (TO_DATE ('01/01/1753', 'MM/DD/YYYY')) ))
OR (( xxxxx.zzzzz >= (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
AND xxxxx.zzzzz < (TO_DATE ('12/1/2015', 'MM/DD/YYYY'))
AND xxxxx.yyyy > (TO_DATE ('10/15/2015', 'MM/DD/YYYY'))
AND xxxxx.yyyy < (TO_DATE ('12/1/2015', 'MM/DD/YYYY')) )) )
我需要上面那些要添加到Information链接中的条件修改了SQL,参数就像这样
WHERE xxxxx.yyyyy = xxxxx.yyyyy
AND ( (( xxxxx.yyyy >= @parameter1
AND xxxxx.yyyy < @parameter2
AND xxxxx.zzzzz >= @parameter1
AND xxxxx.zzzzz < @parameter2
如果需要进一步说明,请与我们联系。
答案 0 :(得分:1)
这只适用于一种情况。对于 xxxxx.yyyy 列中的所有日期,这都是&gt; =或&lt; =。因此,如果您必须使用视图,那么您需要在信息设计器中使用提示。方法如下:
现在,将信息链接添加到您的分析......
同样,这不是理想的方式。如果您真的想在多个条件中使用多个参数,我们需要将您的视图转换为过程或表值函数。它并不难。
修改强>
CREATE PROCEDURE dbo.myProcedure(@parameter1 datetime, @parameter2 datetime)
AS
SELECT xxxxx.yyyy
FROM xxxxx, xxxxx, xxxxx, xxxxx
WHERE xxxxx.yyyyy = xxxxx.yyyyy
AND xxxxx.yyyy >= @parameter1
AND xxxxx.yyyy < @parameter2
AND xxxxx.zzzzz >= @parameter1
AND xxxxx.zzzzz < @parameter2
然后,您可以通过在新的SSMS窗口中输入来测试执行。
EXEC dbo.myProcedure '4/1/2016','7/1/2016' --or what ever dates you want to pass in.