我有以下SQL语句,我想用从Excel中的表传递的参数替换日期值(以使最终用户更容易):
SELECT * FROM
( SELECT TEMP.BNH_PROCESSING_GRP, TEMP.BNH_SUPPLIER_NO, TEMP.BNH_PROCESSING_FLAG, TEMP.BNH_CREATE_DT, TEMP.BNH_TIER1_USER_ID, TEMP.BNH_TIER1_NAME, TEMP.BNH_TIER1_MAINT_DT, TEMP.BNH_TIER2_USER_ID, TEMP.BNH_TIER2_NAME,
TEMP.BNH_TIER2_MAINT_DT, TEMP.BNH_TIER3_USER_ID, TEMP.BNH_TIER3_NAME,
( SELECT MAX(ABA_bank_H.BNH_TIER3_MAINT_DT) FROM ABA_bank_H WHERE ABA_bank_H.BNH_SUPPLIER_NO = TEMP.BNH_SUPPLIER_NO ) AS T3DATE,
TEMP.BNH_BANK_NO, TEMP.BNH_BRANCH_NO, TEMP.BNH_REFERENCE_ROLL_NO, TEMP.BNH_CHECKING_SAVINGS, TEMP.BNH_T_RECORD_TYPE, TEMP.BNH_BANK_CONTROL_DIGIT, TEMP.BNH_ROUTING_TRANSIT, TEMP.BNH_ACCOUNT_NO, TEMP.BNH_IBAN,
TEMP.BNH_SWIFT_CD, TEMP.BNH_ACCT_DESC
FROM ABA_bank_H AS TEMP
WHERE TEMP.BNH_PROCESSING_GRP = 'CZE' AND TEMP.BNH_PROCESSING_FLAG='O'
UNION
SELECT BNH_PROCESSING_GRP, BNH_SUPPLIER_NO, BNH_PROCESSING_FLAG, BNH_CREATE_DT, BNH_TIER1_USER_ID, BNH_TIER1_NAME, BNH_TIER1_MAINT_DT, BNH_TIER2_USER_ID, BNH_TIER2_NAME,
BNH_TIER2_MAINT_DT, BNH_TIER3_USER_ID, BNH_TIER3_NAME, BNH_TIER3_MAINT_DT AS T3DATE, BNH_BANK_NO, BNH_BRANCH_NO, BNH_REFERENCE_ROLL_NO, BNH_CHECKING_SAVINGS,
BNH_T_RECORD_TYPE, BNH_BANK_CONTROL_DIGIT, BNH_ROUTING_TRANSIT, BNH_ACCOUNT_NO, BNH_IBAN, BNH_SWIFT_CD, BNH_ACCT_DESC
FROM ABA_bank_H
WHERE BNH_PROCESSING_GRP = 'CZE' AND BNH_PROCESSING_FLAG='H'
)
ABA_bank_H
WHERE T3DATE BETWEEN '2018-03-01' AND '2018-03-31'
Order by BNH_PROCESSING_GRP, BNH_SUPPLIER_NO, BNH_PROCESSING_FLAG, BNH_CREATE_DT
我在一个名为'Parameters'的单独标签中创建了一个表
Parameter Value
StartDate 2018-03-01
EndDate 2018-03-31
我有以下Get参数功能:
(ParameterName as text) =>
let
ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content],
ParamRow = Table.SelectRows(ParamSource, each ([Parameter] = ParameterName)),
Value=
if Table.IsEmpty(ParamRow)=true
then null
else Record.Field(ParamRow{0},"Value")
in
Value
我将以下内容添加到查询的高级编辑器中:
sStartDate = fnGetParameter("StartDate"),
sEndDate = fnGetParameter("EndDate"),
并更改了SQL语句,如下所示:
...WHERE T3DATE BETWEEN 'sStartDate' AND 'sEndDate' #(lf) Order by...
我认为日期格式错误,但我不知道如何解决这个问题:
“从字符转换日期和/或时间时转换失败 字符串“
您能帮助我解决我的问题,或者推荐一种不同的方法吗?