Forum Discussion

guilhem's avatar
guilhem
Frequent Visitor
9 years ago
Solved

how to join tables

Hello,

 

I have the following tables I would like to make a new table as per follows

 

 

select 

  Issue ID

  Unit Name

  Cap

  Date

From

  Sheet1 join Sheet2, Sheet3

Where

  (Sheet3.Unit ID = Sheet2.Unit ID) and

  ((Sheet1 Date >= Sheet3.Date Start) and (Sheet1 Date <= Sheet3.Date End))

 

 

Assuming Sheet3 is 

Issue IDUnit IDDate StartDate End
1101/11/201603/11/2016
2210/11/201614/11/2016
3125/11/201626/11/2016

 

Sheet 2 is

Unit IDUnit NameCap
1a10
2b20
3c30
4d40
5c50

 

and Sheet 1 are all the calendar days for the november 2016

 

I am hoping to get :

 

DateIssue IDUnit IDCap
01/11/20161a10
02/11/20161a10
03/11/20161a10
10/11/20162b20
11/11/20162b20
12/11/20162b20
13/11/20162b20
14/11/20162b20
25/11/20163c30
26/11/20163c30

 

Anyone can help ? 

 

Thanks ... 

  • guilhem's avatar
    guilhem
    9 years ago

    I finally got the solution ...

     

    Make a new table ...

    Table = Filter( Crossjoin ( table A, TableB ), cond1&&cond2&&cond3....)

     

     

    And it works ... 

     

5 Replies

  • guilhem's avatar
    guilhem
    Frequent Visitor

    I have writen the sql query ...

     

    SELECT
    `a`.`Date` AS `Date`,
    `b`.`UnitID` AS `UnitID`,
    `b`.`IssueID` AS `IssueID`
    FROM
    (`sheet1` `a`
    JOIN `Sheet3` `b`)
    WHERE
    ((`a`.`Date` >= `b`.`Date Start`)
    AND (`a`.`Date` <= `b`.`Date End`))

     

    I just need this in Power BI language :(

     

  • dkay84_PowerBI's avatar
    dkay84_PowerBI
    Microsoft Employee

     

    My approach may not be the best, but here goes:

     

    I would start with a merge as new query operation within the query editor.

     

    You can perform all the select aspects after the merge (i.e. removing columns).

     

    You join sheet2 and sheet3 on Unit ID, choosing the appropriate type of join.

     

    Once you have this new merged query, merge it (as new query) with the sheet1 table using DateStart and Date as the fields, and choose the appropriate join type to return all rows from the fact table with only the matching rows from the date table.

     

    Repeat this process, using the original merged query, but use the DateEnd field.

     

    Append the two final merged tables (date start and date end).

     

    Remove the columns you don't need.

    • guilhem's avatar
      guilhem
      Frequent Visitor

      sorry ... i am not too sure what you are telling me to do there ... 

       

      My knowldge of power bi is too low...

       

      Could you be more precise may be ?

       

      Rgds

      • dkay84_PowerBI's avatar
        dkay84_PowerBI
        Microsoft Employee

        This is all done in the query editor.  Are you familiar with this part of Power BI (Get and Transform, formerly Power Query, in Excel)?