Long-time listener, first-time caller... :-)
So I'm new to Power BI and am hoping I can get this to work. I imported the SQL query below:
DECLARE
@RangeStart as varchar(19),
@RangeEnd as varchar(19),
@ReportStart as date,
@ReportEnd as date
SET @RangeStart = '2020-01-01 00:00:00'
SET @RangeEnd = '2020-05-31 00:00:00'
SET @ReportStart = CAST(@RangeStart as datetime)
SET @ReportEnd = CAST(@RangeEnd as datetime)
SELECT COUNT(screen_client_id) AS SarpyYtdScreenings
FROM dbo.screen
WHERE (screen_date BETWEEN @ReportStart AND @ReportEnd)
So, from Power Query Editor, it "converts" it to:
let
Source = Sql.Database("freedom1a", "pretrial", [Query="declare #(lf)@RangeStart as varchar(19),#(lf)@RangeEnd as varchar(19),#(lf)@ReportStart as date,#(lf)@ReportEnd as date#(lf)SET @RangeStart = '2020-01-01 00:00:00'#(lf)SET @RangeEnd = '2020-05-31 00:00:00'#(lf)SET @ReportStart = CAST(@RangeStart as datetime)#(lf)SET @ReportEnd = CAST(@RangeEnd as datetime)#(lf)SELECT COUNT(screen_client_id) AS SarpyYtdScreenings#(lf)FROM dbo.screen#(lf)WHERE (screen_date BETWEEN @ReportStart AND @ReportEnd)"])
in
Source
So far, so good. But I've created a "table" called DateParameters, with some measures that act like parameters for the user to use, like "EndDate" and "FirstDayOfYear". But I want to somehow pass these measures into my SQL query. I found a site that said I could replace the literal 2020-01-01 00:00:00 with the measure, but I can't get it to work. I've tried:
let
Source = Sql.Database("freedom1a", "pretrial", [Query="declare #(lf)@RangeStart as varchar(19),#(lf)@RangeEnd as varchar(19),#(lf)@ReportStart as date,#(lf)@ReportEnd as date#(lf)SET @RangeStart = '"&DateParameters[FirstDayOfYear]&"'#(lf)SET @RangeEnd = '2020-05-31 00:00:00'#(lf)SET @ReportStart = CAST(@RangeStart as datetime)#(lf)SET @ReportEnd = CAST(@RangeEnd as datetime)#(lf)SELECT COUNT(screen_client_id) AS SarpyYtdScreenings#(lf)FROM dbo.screen#(lf)WHERE (screen_date BETWEEN @ReportStart AND @ReportEnd)"])
in
Source
...which almost works. When I start typing DateParameters, it knows what table I want, but no matter what measure in that table I reference, it doesn't recognize it. Unless my syntax is wrong. I also tried DateParameters.FirstDayOfYear, but it didn't like that, either. Can this even be done? Maybe it only recognizes table columns and not table measures? Do I need to create a column that simply holds the measure value? There must be a way for this to work.
Much appreciation for any help anyone can provide! Thanks.
Darwin