I have two hash tables created from data from two different XML files. What I would like to do is combine the two tables into a single hash table based on a common value in
Given :
f1.csv is :
SkuID,SkuStatusCode,QuantityOnHand
1828,True,441
3022,True,325
2981,True,214
2989,True,842
f2.csv is :
SkuID,RegularPrice,CurrentPrice
1828,49.99,48.99
3022,25,19.99
2981,45,39.99
2989,28,18.99
Try this far-fetched solution, not so good as join-object
because you need to know the properties. You also have to be careful here with +
operator between $a
and $b
which is not commutative it changes the group order :
$a = Import-Csv C:\temp\f1.csv
$b = Import-Csv C:\temp\f2.csv
$b + $a | Group-Object -Property skuId |
% {$x= New-Object -TypeName psCustomObject -Property
@{SkuID=$_.name;RegularPrice=$_.group[0].RegularPrice;
CurrentPrice=$_.group[0].CurrentPrice;
SkuStatusCode=$_.group[1].SkuStatusCode;QuantityOnHand=$_.group[1].QuantityOnHand};
$x}
for me it gives :
QuantityOnHand : 441
RegularPrice : 49.99
SkuStatusCode : True
SkuID : 1828
CurrentPrice : 48.99
QuantityOnHand : 325
RegularPrice : 25
SkuStatusCode : True
SkuID : 3022
CurrentPrice : 19.99
QuantityOnHand : 214
RegularPrice : 45
SkuStatusCode : True
SkuID : 2981
CurrentPrice : 39.99
QuantityOnHand : 842
RegularPrice : 28
SkuStatusCode : True
SkuID : 2989
CurrentPrice : 18.99