I'm pretty new using LINQ + DataTables and I'm stuck for some time. I have searched the internet for some similar problems and solution, but its not exactly what I want to accomplish.
I'll try my best to describe the case and setup:
In text :
I have 3 DataTables filled from a SQL query.
- acdTable (6 rows)
- hourTable (5 rows)
- transferTable (4 rows)
acdTable contains the following Columns : 
Weeknumber, Date (dd-mm-yyyy), Daynumber, Scores
hourTable contains the following Columns : 
Weeknumber, Date (dd-mm-yyyy), Daynumber, Hours
transferTable contains the following Columns : 
Weeknumber, Date (dd-mm-yyyy), Daynumber, Transfered
The problem is when I use LINQ to join the DataTables with eachother (on Weeknumber) I will only get 4 rows back instead of the 6 I need.
If I'm right this has something to do with the joined values which does not exist in either table f.e :
acdTable has Weeknumber 20 with Date 21-7-2020 and hourTable has Weeknumber 20 without 21-7-2020 same goes for transferTable
In this case I would like to see :
If a row from acdTable does not exist in acdTable or hourTable :
Weeknumber 20, Date 21-7-2020, Scores 10, Hours 0, Transfers 0
If a row from acdTable exist in acdTable and or hourTable :
Weeknumber 20, Date 21-7-2020, Scores 10, Hours 32, Transfers 12
I hope the example is clear for what I want to accomplish.
My Code:
var merge = from acd in acdTable.AsEnumerable()
            join hours in hourTable.AsEnumerable()
                 on new
                       {
                         Weeknumber= acd.Field<int>("Weeknumber"),
                         Date= acd.Field<string>("Date")
                       }
                 equals new
                       {
                         Weeknumber= hours.Field<int>("Weeknumber"),
                         Date= hours.Field<string>("Date")
                       }
            join transfers in transferTable.AsEnumerable()
                 on new
                       {
                         Weeknumber= acd.Field<int>("Weeknumber")
                       } 
                 equals new 
                       {
                         Weeknumber= transfers.Field<int>("Weeknumber")
                       }
            select new
                       {
                         Weeknumber= acd.Field<int>("Weeknumber"),
                         Date= acd.Field<string>("Datum"),
                         Transfers= transfers.Field<string>("Transfers"),
                         Sales = acd.Field<int>("Sales"),
                         Hours = hours.Field<double>("Hours")
                        };
My Result :
[0]    { Weeknumber = 29, Date = "13-07-2020", Transfers = "2", Sales = 201, Hours = 44 } <Anonymous Type>
[1]    { Weeknumber = 29, Date = "13-07-2020", Transfers = "3", Sales = 201, Hours = 44 } <Anonymous Type>
[2]    { Weeknumber = 29, Date = "13-07-2020", Transfers = "1", Sales = 201, Hours = 44 } <Anonymous Type>
[3]    { Weeknumber = 29, Date = "13-07-2020", Transfers = "2", Sales = 201, Hours = 44 } <Anonymous Type>
[4]    { Weeknumber = 29, Date = "14-07-2020", Transfers = "2", Sales = 156, Hours = 38.25 }     <Anonymous Type>
[5]    { Weeknumber = 29, Date = "14-07-2020", Transfers = "3", Sales = 156, Hours = 38.25 }     <Anonymous Type>
[6]    { Weeknumber = 29, Date = "14-07-2020", Transfers = "1", Sales = 156, Hours = 38.25 }     <Anonymous Type>
[7]    { Weeknumber = 29, Date = "14-07-2020", Transfers = "2", Sales = 156, Hours = 38.25 }     <Anonymous Type>
[8]    { Weeknumber = 29, Date = "15-07-2020", Transfers = "2", Sales = 155, Hours = 37.5 }      <Anonymous Type>
[9]    { Weeknumber = 29, Date = "15-07-2020", Transfers = "3", Sales = 155, Hours = 37.5 }      <Anonymous Type>
[10]   { Weeknumber = 29, Date = "15-07-2020", Transfers = "1", Sales = 155, Hours = 37.5 }      <Anonymous Type>
[11]   { Weeknumber = 29, Date = "15-07-2020", Transfers = "2", Sales = 155, Hours = 37.5 }      <Anonymous Type>
[12]   { Weeknumber = 29, Date = "16-07-2020", Transfers = "2", Sales = 122, Hours = 26 } <Anonymous Type>
[13]   { Weeknumber = 29, Date = "16-07-2020", Transfers = "3", Sales = 122, Hours = 26 } <Anonymous Type>
[14]   { Weeknumber = 29, Date = "16-07-2020", Transfers = "1", Sales = 122, Hours = 26 } <Anonymous Type>
[15]   { Weeknumber = 29, Date = "16-07-2020", Transfers = "2", Sales = 122, Hours = 26 } <Anonymous Type>
[16]   { Weeknumber = 29, Date = "17-07-2020", Transfers = "2", Sales = 0, Hours = 0 }    <Anonymous Type>
[17]   { Weeknumber = 29, Date = "17-07-2020", Transfers = "3", Sales = 0, Hours = 0 }    <Anonymous Type>
[18]   { Weeknumber = 29, Date = "17-07-2020", Transfers = "1", Sales = 0, Hours = 0 }    <Anonymous Type>
[19]   { Weeknumber = 29, Date = "17-07-2020", Transfers = "2", Sales = 0, Hours = 0 }    <Anonymous Type>
Result I want to accomplish :
{Weeknumber = 29 , Date = "13-07-2020", Transfers = "2", Sales = "201", Hours =  44}
{Weeknumber = 29 , Date = "14-07-2020", Transfers = "3", Sales = "156", Hours =  38,25}
{Weeknumber = 29 , Date = "15-07-2020", Transfers = "1", Sales = "155", Hours =  37,50}
{Weeknumber = 29 , Date = "16-07-2020", Transfers = "2", Sales = "122", Hours =  26}
{Weeknumber = 29 , Date = "17-07-2020", Transfers = "0", Sales = "0", Hours =  0}
{Weeknumber = 29 , Date = "18-07-2020", Transfers = "0", Sales = "0", Hours =  0}
What am I doing wrong or what can I do to get the result I want.
I hope anyone can help me.
 
     
     
     
    