如何在为 Power BI Desktop 定义 ODBC 数据源的 SQL 语句(可选)中使用参数(例如,对于 Firebird)

How to use parameters (e.g. for Firebird) in the SQL statement (optional) that defines ODBC data source for Power BI Desktop

我正在尝试为 Power BI Destop 定义 ODBC 数据源并在其中使用参数。所以 - 我有 Firebird 的 ODBC DSN(在“ODBC 数据源管理器(64 位)”中定义),我可以在 Power BI Destop 中从这个 ODBC 成功导入完整表。

现在我正在尝试将自定义 SQL 语句与用于定义 Power BI Destop 数据源的参数一起使用。

我正在做:'Get data from another source' 和 select 'Other - ODBC' 我在 'Advanced options - SQL statement (optional)' 中输入以下 SQL 语句:

select s.sale_id, s.sale_date, sl.good_id, sl.price, sl.amount
  from sale_lines sl
    left join sales s on (sl.sale_id=s.sale_id)
  where s.sale_date>=:from_date and
        s.sale_date<=:to_date

我也尝试过使用@form_date?from_date格式来定义参数。但在所有情况下,我都会收到不同的错误消息:

Details: "ODBC: ERROR [HY000] [ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -206
Column unknown
FROM_DATE
At line 4, column 26"

Details: "ODBC: ERROR [HY000] [ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -104
Token unknown - line 4, column 25
@"

Details: "ODBC: ERROR [HY000] [ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -104
Token unknown - line 4, column 26
from_date"

所以,我的问题是 - 如何为我正在为 Power BI Destop 的 ODBC 数据源定义构建的 SQL 语句定义参数。我正在使用 Firebird 2.1/3.0/4.0.

Firebird 本身没有命名参数。

如果您的数据库访问库没有将它们实现为标准 SQL 之上的额外层 - 然后使用未命名的 ? 参数并通过参数 number/index 而不是非-现有名称。

喜欢select a, b from tablename where (c = ?) or (d < ?)