を組み合わせるヘルプ。クエリ1は、すべてのノード(Nodes.Caption)のマスターリストを調べます。ただし、要求されたデータ(ネットワークトラフィック)はすべてのノードに存在しません。ネットワークトラフィックをInterfaceTrafficテーブル(クエリ1を参照)から取得するために、結合クエリを使用したいと思います。ただし、このテーブルに既存のデータがない場合は、VIM_VMStatisticsテーブル(クエリ2)からデータを取得します。は、私は2つのクエリを組み合わせる助けが必要なクエリ
クエリ1
SELECT Caption
,Round(InAVG, 2) AS NetInAverage_Kbps
,Round(InMAX, 2) AS NetInMax_Kbps
,Round(OutAVG, 2) AS NetOutAverage_Kbps
,Round(OutMAX, 2) AS NetOutMax_Kbps
FROM (
SELECT caption
,nodeid
FROM Nodes
) n
INNER JOIN (
SELECT nodeid
,AVG(In_Averagebps)/1024 AS InAVG
,MAX(In_Maxbps)/1024 AS InMAX
,AVG(Out_Averagebps)/1024 AS OutAVG
,MAX(Out_Maxbps)/1024 AS OutMAX
FROM InterfaceTraffic
WHERE DATETIME >= DATEADD(MONTH, datediff(MONTH, 0, getdate()) - 1, 0)
AND DATETIME < DATEADD(MONTH, datediff(MONTH, 0, getdate()), 0)
GROUP BY nodeid
) l ON n.NodeID = l.NodeID
ORDER BY Caption
クエリ2
SELECT NAME
,Round(InAVG, 2) AS NetInAverage_Kbps
,Round(InMAX, 2) AS NetInMax_Kbps
,Round(OutAVG, 2) AS NetOutAverage_Kbps
,Round(OutMAX, 2) AS NetOutMax_Kbps
FROM (
SELECT NAME
,VirtualMachineID
,NodeID
FROM VIM_VirtualMachineNodes
) n
INNER JOIN (
SELECT VirtualMachineID
,AVG(AvgNetworkReceiveRate) AS InAVG
,MAX(MaxNetworkReceiveRate) AS InMAX
,AVG(AvgNetworkTransmitRate) AS OutAVG
,MAX(MaxNetworkTransmitRate) AS OutMAX
FROM VIM_VMStatistics
WHERE DATETIME >= DATEADD(MONTH, datediff(MONTH, 0, getdate()) - 1, 0)
AND DATETIME < DATEADD(MONTH, datediff(MONTH, 0, getdate()), 0)
GROUP BY VirtualMachineID
) l ON n.VirtualMachineID = l.VirtualMachineID
* *キャプション、NODEID、名前、virtualmachineidとの関係は何であるか – Siyual
...提出する前に、あなたのポストをプレビューしてください - 関係がない場合は、それらを結合する方法はありません。あなたは私たちに関係を教えてくれませんでした - 私たちはそれらを組み合わせることができるようにする必要があります。 – Hogan
は私はありませんが、NodesテーブルとVIM_VirtualMachineNodesの両方に存在するノードidを追加するのを忘れ。ただし、vim_vimstatisticsではnodeidは存在しません。このテーブルには、virtualmachineid – mprobus