我正在看这个示例,这应该可行:https://www.simple-talk.com/sql/reporting-services/power-query-formula-language-in-power-bi-desktop/
但是,我收到了“预期令牌”错误。
这是代码:
let
#"Datasource" = let
Source = Sql.Databases("111.111.111.111"),
DSN = Source{[Name="DSN"]}[Data],
#"dbo_Datasource" = DSN{[Schema="dbo",Item="Datasource"]}[Data],
BlockFilter = Table.SelectRows(#"dbo_Datasource", each ([block] <> "")),
AddColQTR = Table.AddColumn(BlockFilter , "Start_Of_QTR", each Date.StartOfQuarter(DateTime.LocalNow()))
in
AddColQTR
您有 2 个“let”和 1 个“in”;每个“let”应该有一个相应的“in”。
在我看来,你应该删除这一行:#"Datasource" = let
当您在 Powerquery/Power BI 中的步骤末尾不包含逗号时,会呈现预期错误中的令牌,因此您必须添加它。 但是,在您的情况下,您在不必要时以主题标签“#”开始。 连接是第一个自动操作,后续操作或步骤以 # 开头,而不是在第一步中,这是默认连接行。 另请注意,“”后面是#,(需要双引号,以便可以选择在两个单词之间使用空格)。
let
Source =
Csv.Document(File.Contents("C:\Users\edcon\Documents\watchlists\value\
Value_Wed Sep 18 2024 (1).csv"),[Delimiter=",", Columns=10,
Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source,
[PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",
{{"Symbol", type text}, {"Last Price", Currency.Type}, {"Change $", type
number}, {"Change %", type number}, {"Bid", type text}, {"Ask", type
text}, {"Day's Range", type text}, {"52 Week Range", type text},
{"Volume", Int64.Type}, {"Last Trade (ET)", type text}})
in
#"Changed Type"`
此外,您应该尝试在添加列行上遵循正确的语法。
ColQtr = Table.AddColumn(BlockFilter, "Start_of_Quarter", each
if [enter method/function for if [date (use name of date column in
brackets]) is in quarter one, then january 1,
if [enter method/function for if date is in quarter two, then april 1,
etc..
in ColQtr