在SPSS Modeler中的SQL查询中使用日期流参数的问题

时间:2019-08-28 15:17:55

标签: sql spss-modeler

我是SPSS的新手,目前使用SPSS Modeler v18

我在流参数中正确声明了2个变量 DateDebut和DateFin (开始日期和结束日期)

我在SQL节点中编码了以下查询

select distinct
            *
from ADMIN.FAIT_ENTT_TICK_ENT_2015_
where 
      date("DATE_TICK") >= date('$P-DateDebut')
  and date("DATE_TICK") <= date('$P-DateFin')

我确实输出了一个空表

我为参数填充的值是

DataDebut=2019-01-01
DateFin=2019-01-10

还有

select distinct
    date('$P-DateDebut') as A, *
from ADMIN.FAIT_ENTT_TICK_ENT_2015_
where 
      date("DATE_TICK") >= date('2019-01-01')
  and date("DATE_TICK") <= date('2019-01-10')

工作正常...

你有什么主意吗?

(我的服务器是一个Netezza服务器)

非常感谢, 尼古拉斯

1 个答案:

答案 0 :(得分:0)

由于我无权访问Netezza(IBM PureDate)设备,因此无法测试您的确切情况。但是,我没有立即看到您的SQL查询以及如何合并流参数的任何问题。在MS SQL Server上执行,我使用如下查询获得正确的结果:

SELECT *
  FROM [dbo].[sampleTable]
 WHERE [sampleDate] = '$P-selected_date'

有些事情可能会让您绊倒:

  • 数据库中日期的格式和stream参数是否相同?
  • 该日期范围内数据库中实际上有记录吗?

可能有助于识别问题的一件事是打开日志中的SQL消息并查看从源节点生成的SQL查询。请执行以下步骤:

  1. 从菜单中选择Tools | Stream Properties | Options ...
  2. 从左侧菜单中,选择Logging and Status
  3. 确保已选中Display SQL in the messages log during stream executionReformat SQL for improved readability的选项
  4. 直接将表节点附加到源节点并执行表节点
  5. 从菜单中选择Tools | Stream Properties | Messages ... 在消息中,您现在应该能够找到从源节点生成并在数据库中执行的SQL,这可能会向您显示生成的SQL命令是否与预期的不同。