首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数化查询-M语言(Excel)

参数化查询-M语言(Excel)
EN

Stack Overflow用户
提问于 2019-08-28 14:33:46
回答 1查看 130关注 0票数 0

我试图使我的查询参数化;这意味着,一旦设置了特定单元格中的值,它就是该查询将运行的值。

我的问题是单元格中的值是日期,而MySQL不理解格式

这是我使用的查询:

代码语言:javascript
复制
Select * From ID WHERE `TIME` = '2019-08-26';

我所做的是使用“从表/范围获取数据”选项到excel并创建一个表,因此该表执行筛选或我想要执行查询的值。

之后,我进入了power查询,并将查询中的"Time“值改为”Time“,使其变为动态的。

代码语言:javascript
复制
`TIME`= " & Text.From(X) & ";"])

现在,我表中的值变成了动态过滤器。

然后进入高级编辑器并添加以下内容:

代码语言:javascript
复制
    let 
    Source1 = Excel.CurrentWorkbook(){[Name="Table1_2"]}[Content],
    x= Source1{0}[Date],

Table1_2是我创建的表(使用get数据选项)

日期是上表的标题。

完成此操作后,power查询将按以下方式读取查询,假设表(参数)中的值= 2019-01-01:

代码语言:javascript
复制
SELECT * FROM ID WHERE `TIME` = 2019/01/01 

,它返回一个空表,因为我的DB中的数据格式是YYYY-MM-DD。

这就是我所面临的第二个的第一个问题:

我希望我的查询基于插入在单元格中的数据到第二天的数据(在单元格中的值添加一天)之间的范围进行筛选,这意味着表中的值( filter /Parameter)变成了一个范围,例如:

单元格中的值= 2019-01-01

查询应该变成

代码语言:javascript
复制
SELECT * FROM ID WHERE `TIME` > '2019-01-01' AND `TIME` < '2019-01-02' 

我厌倦了把时间变成这样:

代码语言:javascript
复制
    `TIME` > " & Text.From(Date.ToText((x),"YYYY-MM-DD"))& " 
and `TIME` < "& Text.From(Date.ToText((Date.AddDays(x,1)),"YYYY-MM-DD")) &";"])

Power查询仍然不会给我任何结果,因为excel完全忽略了我所做的事情,因为表返回的值是错误的。

有谁知道如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2019-08-29 12:22:42

Date.ToText格式(区分大小写)

代码语言:javascript
复制
Date.ToText(x, "yyyy-MM-dd")

然后让

代码语言:javascript
复制
`TIME` = "' & Date.ToText(x, "yyyy-MM-dd") & "';"

对于SQL。一定要包括'

由于您使用的是Date.ToText,所以可以省略Text.From

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57694824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档