Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
hworrall
Frequent Visitor

Complex query

Hi there,

 

I am new to Power BI and am trying to write a query where I need to subtract the result of one query from the result of a second query.  Here is what I have in SQL/English.  There are also two different date columns, it is not a typo.  I am not sure how to do it at all, but also would like to find the most efficient way to do it.

 

Any help is appreciated 🙂

 

Query 1:

Sum TotalCharge where:

 

SELECT Wdate, Wpdate, Whours, Wfee, Wexp, wFee+wExp+wSurchg as TotalCharge, Wdstamp, Wipdate, Windicator
FROM WIP
WHERE Wdate < '2018-05-01' AND Wipdate > '2018-04-30' AND (Windicator = 'w' or Windicator = 'h')

 

MINUS

 

Query 2:

Sum TotalCharge where:

SELECT Wdate, Wpdate, Whours, Wfee, Wexp, wFee+wExp+wSurchg as TotalCharge, Wdstamp, Wipdate, Windicator
FROM WIP

WHERE Wdate > '2018-04-30' AND Wipdate < '2018-05-01' AND (Windicator = 'w' or Windicator = 'h')

 

Thank you!

1 REPLY 1
ImkeF
Community Champion
Community Champion

Hi @hworrall ,

please paste this code into the advanced editor and follow the steps:

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUAyIjA0MLJR0wxxzGKQdiQwOlWB18ijKA2IiQokQgNkZTZInNOhNirDMlxjozNEXmUEVwDsg6c6CiWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Wdate = _t, Wipdate = _t, Windicator = _t, TotalCharge = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Wdate", type date}, {"Wipdate", type date}, {"Windicator", type text}, {"TotalCharge", Int64.Type}}),
    Filter1 = Table.SelectRows(#"Changed Type", each [Wdate] < #date(2019, 5, 1) and [Wipdate] > #date(2018, 4, 30) and ( [Windicator] = "w" or [Windicator] = "h" ) ),
    Query1 = List.Sum(Filter1[TotalCharge]),
    Filter2 = Table.SelectRows(#"Changed Type", each [Wdate] > #date(2018, 4, 30) and [Wipdate] < #date(2019, 5, 1) and ( [Windicator] = "w" or [Windicator] = "h" ) ),
    Query2 = List.Sum(Filter2[TotalCharge]),
    Result = Query1 + Query2
in
    Result

 

Imke Feldmann (The BIccountant)

If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!

How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.