我有以下查询:
SELECT
_RES_COLL_EVM00012.MachineID,
_RES_COLL_EVM00012.Name,
v_GS_NETWORK_ADAPTER_CONFIGUR.IPAddress0,
v_GS_NETWORK_ADAPTER_CONFIGUR.DefaultIPGateway0,
v_GS_NETWORK_ADAPTER_CONFIGUR.TimeStamp,
v_GS_NETWORK_ADAPTER_CONFIGUR.RevisionID
FROM
_RES_COLL_EVM00012
LEFT JOIN v_GS_NETWORK_ADAPTER_CONFIGUR
ON _RES_COLL_EVM00012.MachineID = v_GS_NETWORK_ADAPTER_CONFIGUR.ResourceID
WHERE
v_GS_NETWORK_ADAPTER_CONFIGUR.IPEnabled0 = 1
AND v_GS_NETWORK_ADAPTER_CONFIGUR.IPAddress0 != '0.0.0.0'
AND v_GS_NETWORK_ADAPTER_CONFIGUR.IPAddress0 IS NOT NULL
AND v_GS_NETWORK_ADAPTER_CONFIGUR.DefaultIPGateway0 != '0.0.0.0'
AND v_GS_NETWORK_ADAPTER_CONFIGUR.DefaultIPGateway0 IS NOT NULL
ORDER BY
_RES_COLL_EVM00012.Name ASC,
v_GS_NETWORK_ADAPTER_CONFIGUR.TimeStamp DESC,
v_GS_NETWORK_ADAPTER_CONFIGUR.RevisionID DESC
它返回如下内容:
MachineID Name IPAddress0 DefaultGatewayIP0 TimeStamp RevisionID 16777323 CTNB21 192.168.17.134 192.168.17.254 9/09/2013 13:07:11 8 16777323 CTNB21 192.168.17.143 192.168.17.254 9/09/2013 13:07:11 6 16777585 CTNB26 192.168.16.106 192.168.16.254 28/10/2013 22:39:55 33 16777585 CTNB26 192.168.16.116 192.168.16.254 28/10/2013 22:39:55 27
显然 ResourceID 在表 v_GS_NETWORK_ADAPTER_CONFIGUR 中不是唯一的。我需要做的是显示表_RES_COLL_EVM00012 中的每一行以及来自v_GS_NETWORK_ADAPTER_CONFIGUR 的每一行的单行。
从 v_GS_NETWORK_ADAPTER_CONFIGUR 中选择的行应该是具有最新 TimeStamp 和最大 RevisionID 的行。
另请注意,我实际上并不想选择 MachineID、TimeStamp 或 RevisionID,我刚刚这样做是为了帮助更好地解释我的请求。
还有一件事,如果 v_GS_NETWORK_ADAPTER_CONFIGUR 中不存在与 MachineID/ResourceID 匹配的行,我仍然需要输出名称,但 IPAddress0 和 DefaultGatewayIP0 的值为空白
因此,为了澄清,我希望示例结果集看起来像这样:
名称 IPAddress0 DefaultGatewayIP0 CTNB21 192.168.17.134 192.168.17.254 CTNB26 192.168.16.106 192.168.16.254