我正在尝试创建一个查询,该查询可获取指定时间范围内的记录,因此为BETWEEN
。但是,我需要从一个交互式报表中执行此操作,该报表用户可以指定endDate和startDate参数。
我已经阅读到RedShift不一定支持变量或参数,并且可能需要使用临时表,但是我的要求是用户可以传递值。我对如何使用带有预定义值的临时表如何将确定性值传递给基本查询感到困惑...
这是我最初的尝试(不要笑)
prepare prep_select_plan(date)
AS select TOP 10 * from table WHERE date BETWEEN $1 AND $2;
EXECUTE prep_select_plan(@startDate);
EXECUTE prep_select_plan(@endDate);
DEALLOCATE prep_select_plan;
是否有另一个平台可以让我创建基于Web的交互式报表,并能够让最终用户输入参数值?
更新* 我附加了数据集属性窗口,以获取有关如何将值传递给RedShift查询的反馈。
答案 0 :(得分:1)
使用ODBC连接到RedShift或MySQL之类的数据库时,必须对参数使用更通用的语法。无需使用@符号和参数名称,只需在查询中使用?
。例如,一行如下所示:
EXECUTE prep_select_plan(?);
您可以将哪些报告参数映射到数据集属性的“参数”选项卡中的查询参数。参数按照它们出现的顺序简单地映射,您不能在查询的多个位置引用相同的名称。它不是那么用户友好,但是SSRS的主要目的是与SQL Server一起使用。