如何使用 Excel 中 table 的命名日期来过滤 Power Query?
How to use named date from table in Excel to filter Power Query?
所以我之前实际上已经用我构建的查询完成了这个但是这次我试图使用从 Excel table 中提取的日期来过滤其他人构建的 Power Query 和不是最干净的代码。我在正确编写代码时遇到问题,也不想把它搞砸。下面是 Start_Date 和 End_Date.
的代码
let
Source = Excel.CurrentWorkbook(){[Name="Start_Date"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
Start_Date = Record.Field(#"Changed Type"{0},"Column1")
in
Start_Date
let
Source = Excel.CurrentWorkbook(){[Name="End_Date"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
End_Date = Record.Field(#"Changed Type"{0},"Column1")
in
End_Date
Start_Date 的日期格式为 2019 年 12 月 29 日,End_Date 的日期格式为 2021 年 6 月 26 日。然后我试图在下面的代码中使用这些来替换当前在那里的日期。
let
Start_Date = Start_Date,
End_Date = End_Date,
Source = Sql.Database("", "", [Query="-- Estimated Runtime: <30 sec for 1 year of data#(lf)#
(lf)Declare @StartDate date#(lf)Declare @EndDate date#(lf)Set @EndDate = End_Date -- Set
EndDate to Now#(lf)Set @StartDate = '2019-12-29'--dateadd(yy,-1,dateadd(yy,
datediff(yy,0,@EndDate),0)) -- Set StartDate to January 1st of previous year#(lf)#(lf)
但是如果我只是尝试用命名的 Start_Date 和 End_Date 替换日期,我会收到以下错误消息。
DataSource.Error: Microsoft SQL: Invalid column name 'End_Date'.
Details:
DataSourceKind=SQL
DataSourcePath=jansql01;mas500_app
Message=Invalid column name 'End_Date'.
Number=207
Class=16
非常感谢任何帮助!
它需要是SQL可以消化的文本格式。
所以不用
Query="...Set @EndDate = End_Date..."
您需要将 End_Date
作为字符串插入更像
Query="...Set @EndDate = '" & Date.ToText(End_Date, "yyyy-MM-dd") & "'..."
所以我之前实际上已经用我构建的查询完成了这个但是这次我试图使用从 Excel table 中提取的日期来过滤其他人构建的 Power Query 和不是最干净的代码。我在正确编写代码时遇到问题,也不想把它搞砸。下面是 Start_Date 和 End_Date.
的代码let
Source = Excel.CurrentWorkbook(){[Name="Start_Date"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
Start_Date = Record.Field(#"Changed Type"{0},"Column1")
in
Start_Date
let
Source = Excel.CurrentWorkbook(){[Name="End_Date"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
End_Date = Record.Field(#"Changed Type"{0},"Column1")
in
End_Date
Start_Date 的日期格式为 2019 年 12 月 29 日,End_Date 的日期格式为 2021 年 6 月 26 日。然后我试图在下面的代码中使用这些来替换当前在那里的日期。
let
Start_Date = Start_Date,
End_Date = End_Date,
Source = Sql.Database("", "", [Query="-- Estimated Runtime: <30 sec for 1 year of data#(lf)#
(lf)Declare @StartDate date#(lf)Declare @EndDate date#(lf)Set @EndDate = End_Date -- Set
EndDate to Now#(lf)Set @StartDate = '2019-12-29'--dateadd(yy,-1,dateadd(yy,
datediff(yy,0,@EndDate),0)) -- Set StartDate to January 1st of previous year#(lf)#(lf)
但是如果我只是尝试用命名的 Start_Date 和 End_Date 替换日期,我会收到以下错误消息。
DataSource.Error: Microsoft SQL: Invalid column name 'End_Date'.
Details:
DataSourceKind=SQL
DataSourcePath=jansql01;mas500_app
Message=Invalid column name 'End_Date'.
Number=207
Class=16
非常感谢任何帮助!
它需要是SQL可以消化的文本格式。
所以不用
Query="...Set @EndDate = End_Date..."
您需要将 End_Date
作为字符串插入更像
Query="...Set @EndDate = '" & Date.ToText(End_Date, "yyyy-MM-dd") & "'..."