次のテーブルを生成する次のクエリがあります。
SELECT
memcpu.[ID]
, memcpu.[DNS_NAME]
, memcpu.[MEM_SIZE_MB]
, hdd.PATH
, hdd.CAPACITY
FROM [VCenterServer].[dbo].[VPX_VM] AS memcpu
INNER JOIN [VCenterServer].[dbo].[VPX_GUEST_DISK] AS hdd
ON memcpu.ID = hdd.VM_ID
GROUP BY
memcpu.[ID]
, memcpu.[DNS_NAME]
, memcpu.[MEM_SIZE_MB]
, hdd.PATH
, hdd.CAPACITY
;
テーブル:
ID DNS_NAME MEM_SIZE_MB PATH CAPACITY
27 name27 2048 C:\ 42947571712
28 name28 4096 C:\ 42947571712
28 name28 4096 E:\ 134214578176
37 name37 6144 C:\ 42947571712
38 name38 2048 C:\ 42947571712
39 name39 8192 C:\ 145077825536
すべて同じ PATH 変数の条件で ID に対して SUM を実行する方法を知りたいです。基本的に、各仮想マシンのストレージを合計して、メモリとプロビジョニングされたストレージの合計を確認できるようにします。
目的のテーブル (ID 28 に注意してください。C: と E: が合計されています):
問題は、CAPACITY が nvarchar(21) として定義されていることです。
ID DNS_NAME MEM_SIZE_MB CAPACITY
27 name27 2048 42947571712
28 name28 4096 177162149888
37 name37 6144 42947571712
38 name38 2048 42947571712
39 name39 8192 145077825536