For instance, you have to remove the RAM.Capacity and Disk.DiskSize from your GROUP BY. You might also need to aggregate the values before joining the tables. This can be done with a subquery or a CTE.
On a different topic:
Are you aware of the issues you face with integer division?
Why do you use 1024 for RAM and 1000 for disk size?