我已经在这里和这里看到了关于SO的参考帖子。我已尝试论坛的回复,但无法成功运行我的 PowerQuery。
到目前为止,我已将开始日期和结束日期单元格命名为“StartDate”和“EndDate”。从那里我创建了两个空白查询,都重命名为 StartDateValue 和 EndDateValue,如下所示:
(StartDate) => Excel.CurrentWorkbook(){[Name=StartDate]}[Content]{0}[Column1]
和(EndDate) => Excel.CurrentWorkbook(){[Name=EndDate]}[Content]{0}[Column1]
现在,循环回到我原来的 PowerQuery,设置这些日期参数的 where 子句如下所示:
AND A."CREATED_DTM" BETWEEN Excel.Workbook(File.Contents(StartDateValue("StartDate"))) and Excel.Workbook(File.Contents(EndDateValue("EndDate")))
这样做似乎不起作用。不过,如果我替换“失败”的调用并简单地输入日期值(如
'5/1/2022'
),我的脚本就会正常执行。也许我错过了一个步骤或者没有在我的 SQL 中正确调用这些值...不太确定。任何有关这方面的信息都有帮助,谢谢。
我不确定您打算如何在 powerquery 中使用它,但您可能希望在查询中以文本格式显示 StartDate 和 EndDate 单元格的内容,因此放弃您的两个函数,只需在代码中包含这些行
SD = Text.From(Date.From(Excel.CurrentWorkbook(){[Name="StartDate"]}[Content]{0}[Column1])),
ED = Text.From(Date.From(Excel.CurrentWorkbook(){[Name="EndDate"]}[Content]{0}[Column1])),
然后您可以根据需要使用SD和ED
text = "this is some text with " & SD & " and " & ED & " in them"
= Sql.Database("SERVER", "DATABASE", [Query="SELECT * FROM [TABLE] WHERE weekStartDate>='"&SD&"'"])