I am trying to query for various physical disk health information.
I have two queries that each return separate information about PhysicalDisks.
>Get-PhysicalDisk | Select-Object DeviceId, FriendlyName, Model, SerialNumber, Usage, HealthStatus, CanPool, CannotPoolReason | Format-Table
DeviceId | Model | SerialNumber | FriendlyName | Usage | HealthStatus | CanPool | CannotPoolReason |
---|---|---|---|---|---|---|---|
0 | WDC WD80EDAZ-11T | VGJKAJEG | ATA WDC WD80EDAZ-11T | Auto-Select | Healthy | False | In a Pool |
1 | WDC WD40EFRX-68N | WD-WCC7K6NE2J5J | ATA WDC WD40EFRX-68N | Auto-Select | Healthy | True | |
2 | WDC WD40EFRX-68N | WD-WCC7K5RYNVZD | ATA WDC WD40EFRX-68N | Hot Spare | Healthy | False | In a Pool |
3 | WDC WD80EDAZ-11T | VGGDU8GG | ATA WDC WD80EDAZ-11T | Auto-Select | Healthy | False | In a Pool |
4 | WDC WD80EDAZ-11T | VGKE7HJG | ATA WDC WD80EDAZ-11T | Auto-Select | Healthy | False | In a Pool |
5 | Samsung SSD 970 EVO 500GB | 0025_385A_9150_212F. | Samsung SSD 970 EVO 500GB | Auto-Select | Healthy | True | |
6 | WDC WD40EFRX-68N | WD-WCC7K5KP57ZJ | ATA WDC WD40EFRX-68N | Hot Spare | Healthy | False | In a Pool |
7 | WDC WD40EFRX-68N | WD-WCC7K1URKJV5 | ATA WDC WD40EFRX-68N | Hot Spare | Healthy | False | In a Pool |
8 | WDC WD40EFRX-68N | WD-WCC7K1TZUVDD | ATA WDC WD40EFRX-68N | Auto-Select | Healthy | False | In a Pool |
9 | Elements 25A3 | 2SGDZYXJ | WD Elements 25A3 | Auto-Select | Healthy | False | Insufficient Capacity |
10 | WDC WD40EFRX-68N | WD-WCC7K6HJV122 | ATA WDC WD40EFRX-68N | Auto-Select | Healthy | False | In a Pool |
11 | WDC WD40EFRX-68N | WD-WCC7K1PHSSE7 | ATA WDC WD40EFRX-68N | Auto-Select | Healthy | False | In a Pool |
12 | WDC WD40EFRX-68N | WD-WCC7K5XL728J | ATA WDC WD40EFRX-68N | Auto-Select | Healthy | False | In a Pool |
13 | WDC WD40EFRX-68N | WD-WCC7K3DNAYHT | ATA WDC WD40EFRX-68N | Auto-Select | Healthy | False | In a Pool |
And then there's the SMART attributes of the same physical disks:
>Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object Number, DeviceId, PowerOnHours, ReadErrorsTotal, Temperature, ReadLatencyMax, WriteLatencyMax | Format-Table
DeviceId | PowerOnHours | ReadErrorsTotal | Temperature | ReadLatencyMax | WriteLatencyMax |
---|---|---|---|---|---|
4 | 40340 | 0 | 28 | 155 | 283 |
6 | 25774 | 0 | 29 | 712 | 226 |
8 | 17383 | 0 | 29 | 190 | 163 |
12 | 36 | 489 | 287 | ||
13 | 1486 | 0 | 31 | 19376 | 0 |
5 | 25781 | 0 | 31 | 699 | 208 |
0 | 28385 | 0 | 27 | 1 | |
1 | 35341 | 0 | 28 | 197 | 168 |
3 | 41524 | 0 | 27 | 177 | 193 |
11 | 13743 | 0 | 38 | 242 | 148 |
2 | 33553 | 0 | 28 | 365 | 422 |
10 | 14000 | 0 | 34 | 239 | 418 |
9 | 14000 | 0 | 36 | 234 | 368 |
7 | 25746 | 0 | 28 | 4 |
Well now i want these merged into single-rows:
DeviceId | FriendlyName | Model | SerialNumber | Usage | HealthStatus | CanPool | CannotPoolReason | PowerOnHours | ReadErrorsTotal | Temperature | ReadLatencyMax | WriteLatencyMax |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K6NE2J5J | Auto-Select | Healthy | TRUE | 28385 | 0 | 27 | 1 | ||
1 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K1TZUVDD | Auto-Select | Healthy | FALSE | In a Pool | 35341 | 0 | 28 | 197 | 168 |
2 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K6HJV122 | Auto-Select | Healthy | FALSE | In a Pool | 33553 | 0 | 28 | 365 | 422 |
3 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K5KP57ZJ | Hot Spare | Healthy | FALSE | In a Pool | 41524 | 0 | 27 | 177 | 193 |
4 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K1URKJV5 | Hot Spare | Healthy | FALSE | In a Pool | 40340 | 0 | 28 | 155 | 283 |
5 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K3DNAYHT | Auto-Select | Healthy | FALSE | In a Pool | 25781 | 0 | 31 | 699 | 208 |
6 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K1PHSSE7 | Auto-Select | Healthy | FALSE | In a Pool | 25774 | 0 | 29 | 712 | 226 |
7 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K5RYNVZD | Hot Spare | Healthy | FALSE | In a Pool | 25746 | 0 | 28 | 4 | |
8 | ATA WDC WD40EFRX-68N | WDC WD40EFRX-68N | WD-WCC7K5XL728J | Auto-Select | Healthy | FALSE | In a Pool | 17383 | 0 | 29 | 190 | 163 |
9 | ATA WDC WD80EDAZ-11T | WDC WD80EDAZ-11T | VGGDU8GG | Auto-Select | Healthy | FALSE | In a Pool | 14000 | 0 | 36 | 234 | 368 |
10 | ATA WDC WD80EDAZ-11T | WDC WD80EDAZ-11T | VGJKAJEG | Auto-Select | Healthy | FALSE | In a Pool | 14000 | 0 | 34 | 239 | 418 |
11 | ATA WDC WD80EDAZ-11T | WDC WD80EDAZ-11T | VGKE7HJG | Auto-Select | Healthy | FALSE | In a Pool | 13743 | 0 | 38 | 242 | 148 |
12 | Samsung SSD 970 EVO 500GB | Samsung SSD 970 EVO 500GB | 0025_385A_9150_212F. | Auto-Select | Healthy | TRUE | 36 | 489 | 287 | |||
13 | WD Elements 25A3 | Elements 25A3 | 2SGDZYXJ | Auto-Select | Healthy | FALSE | Insufficient Capacity | 1486 | 0 | 31 | 19376 | 0 |
In SQL Server relational databases that would be an INNER JOIN
on DeviceId.
How can i combine these two results set into one set?