Hello!
I am brand new to PowerShell (started yesterday). I’m trying to combine two sets of data into a single array using a common variable (name in example below). The issue I am running into is that values may appear on one set and not the other, but I still need them to show up.
I’ve been able to get it so that values from $CSVData01 that aren’t on $CSVData02 appear, but I am struggling with also getting values on $CSVData02 that aren’t on $CSVData01 to appear. Here’s what I have with dummy data:
[pre]$CSVData01 = @’
“name”,“start_date”,“end_date”
Ashleigh,1/5/2019,4/5/2019
Hunter,5/8/2018,8/8/2018
Steve,6/25/2019,9/25/2019
Jason,11/9/2015,2/9/2016
Heather,3/22/2018,6/22/2018
Sarah,7/16/2019,10/16/2019
Jane,1/1/2017,4/1/2017
'@ | Convertfrom-Csv
$CSVData02 = @’
“name”,“rehire”,“bonus”
Ashleigh,5/8/2019,500.00
Hunter,8/25/2019,250.00
Steve,10/22/2019,100.00
Heather,7/13/2019,600.00
Sarah,10/5/2019,50.00
Alice,5/5/2019/6000.00
Andy,1/8/2015,2.00
'@ | Convertfrom-Csv
$outarray = @(
foreach ($DataSet01 in $CSVData01) {
$DataSet02 = $CSVData02 | Where-Object {$DataSet01.name -eq $_.name}
[PSCustomObject]@{
name = $DataSet01.name
start_date = $DataSet01.start_date
end_date = $DataSet01.end_date
rehire = $DataSet02.rehire
bonus = $DataSet02.bonus
}
}
)
$outarray | Write-Output[/pre]
Here is the output I’m getting
name : Ashleigh
start_date : 1/5/2019
end_date : 4/5/2019
rehire : 5/8/2019
bonus : 500.00
name : Hunter
start_date : 5/8/2018
end_date : 8/8/2018
rehire : 8/25/2019
bonus : 250.00
name : Steve
start_date : 6/25/2019
end_date : 9/25/2019
rehire : 10/22/2019
bonus : 100.00
name : Jason
start_date : 11/9/2015
end_date : 2/9/2016
rehire :
bonus :
name : Heather
start_date : 3/22/2018
end_date : 6/22/2018
rehire : 7/13/2019
bonus : 600.00
name : Sarah
start_date : 7/16/2019
end_date : 10/16/2019
rehire : 10/5/2019
bonus : 50.00
name : Jane
start_date : 1/1/2017
end_date : 4/1/2017
rehire :
bonus :
How do I get Alice and Andy also to appear on this output?
Thanks so much!