在 Prompt 中输入的 Date Range 或 Columns 值需要用作 Spotfire IL 中的变量 modified SQL
Date Range or Columns values entered in Prompt need to be used as variables in Spotfire IL modified SQL
我需要使用日期 range/any 列的提示输入作为信息 Link 的修改 SQl 功能中的变量。我有一些使用多个条件的复杂查询,我无法将它们保留在视图中,并希望使用此变量在修改后的 SQL 中添加这些条件。
这是一个示例 SQL,我需要使用 variable/parameter 而不是给定的日期
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')) )) )
我需要将上面的where条件添加到Information中link修改SQL参数为这样
WHERE xxxxx.yyyyy = xxxxx.yyyyy
AND ( (( xxxxx.yyyy >= @parameter1
AND xxxxx.yyyy < @parameter2
AND xxxxx.zzzzz >= @parameter1
AND xxxxx.zzzzz < @parameter2
如果需要进一步说明,请告诉我。
这只适用于一种情况。即 >= 或 <= xxxxx.yyyy 列中的所有日期。因此,如果您必须 使用视图,那么您需要在信息设计器中使用提示。方法如下:
- 在信息设计器中打开您的信息Link
- 别管你的 SQL。将日期范围设置为您需要的最大范围
- 在 提示 部分下,添加 提示 xxxxx.yyyy专栏
- 将提示类型设置为范围并选中强制框
现在,将信息 Link 添加到您的分析中...
- 当提示 window 打开时,select 底部的 Use On-demand 按钮。 Select 确定/完成
- 在工具栏上转到 编辑 > 数据 Table 属性 和 select 您的数据 table
- Select 数据类型下的设置按钮:常规 ]选项卡
- 突出显示您的 xxxxx.yyyy 列并单击 定义输入 按钮
- Select 值 (fixed/properties/expression) 来自 selected 参数 [=] 输入的下拉列表58=]
- Select 属性 单选按钮并单击 Select 按钮
- 单击 新建 并创建一个 属性 类型为 DATE 的控件,您将在文本区域中使用该控件
同样,这不是理想的方式。如果您真的想在多个条件下使用多个参数,我们需要将您的视图转换为过程或 table 值函数。不难。
编辑
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 中输入它来测试执行情况 window。
EXEC dbo.myProcedure '4/1/2016','7/1/2016' --or what ever dates you want to pass in.
我需要使用日期 range/any 列的提示输入作为信息 Link 的修改 SQl 功能中的变量。我有一些使用多个条件的复杂查询,我无法将它们保留在视图中,并希望使用此变量在修改后的 SQL 中添加这些条件。
这是一个示例 SQL,我需要使用 variable/parameter 而不是给定的日期
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')) )) )
我需要将上面的where条件添加到Information中link修改SQL参数为这样
WHERE xxxxx.yyyyy = xxxxx.yyyyy
AND ( (( xxxxx.yyyy >= @parameter1
AND xxxxx.yyyy < @parameter2
AND xxxxx.zzzzz >= @parameter1
AND xxxxx.zzzzz < @parameter2
如果需要进一步说明,请告诉我。
这只适用于一种情况。即 >= 或 <= xxxxx.yyyy 列中的所有日期。因此,如果您必须 使用视图,那么您需要在信息设计器中使用提示。方法如下:
- 在信息设计器中打开您的信息Link
- 别管你的 SQL。将日期范围设置为您需要的最大范围
- 在 提示 部分下,添加 提示 xxxxx.yyyy专栏
- 将提示类型设置为范围并选中强制框
现在,将信息 Link 添加到您的分析中...
- 当提示 window 打开时,select 底部的 Use On-demand 按钮。 Select 确定/完成
- 在工具栏上转到 编辑 > 数据 Table 属性 和 select 您的数据 table
- Select 数据类型下的设置按钮:常规 ]选项卡
- 突出显示您的 xxxxx.yyyy 列并单击 定义输入 按钮
- Select 值 (fixed/properties/expression) 来自 selected 参数 [=] 输入的下拉列表58=]
- Select 属性 单选按钮并单击 Select 按钮
- 单击 新建 并创建一个 属性 类型为 DATE 的控件,您将在文本区域中使用该控件
同样,这不是理想的方式。如果您真的想在多个条件下使用多个参数,我们需要将您的视图转换为过程或 table 值函数。不难。
编辑
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 中输入它来测试执行情况 window。
EXEC dbo.myProcedure '4/1/2016','7/1/2016' --or what ever dates you want to pass in.