인터페이스의 수를 세고 싶습니다.이 코드를 작성하여 노드와 인터페이스의 두 테이블에서 계산하십시오. 이 코드는 작동하지만이 코드의 다른 방법이나 최적화 방법을 알고 싶습니다. 그들을 셀 수있는 가장 좋은 방법은 무엇입니까?내 검색어를 어떻게 최적화 할 수 있습니까?
는
SELECT
q1.NodeName,
q1.Nup as up,
q2.ndown as down
FROM (
SELECT
Nodes.NodeID AS NodeID,
Interfaces.NodeID AS InterfaceID,
Nodes.Caption AS NodeName,
Interfaces.Status as Status,
Count(Nodes.Caption) as Nup
FROM
Nodes INNER JOIN Interfaces ON (Nodes.NodeID = Interfaces.NodeID)
WHERE
(
(
(Interfaces.Status = '2'))
)
GROUP BY Nodes.NodeID, Nodes.Caption, Interfaces.Status, Interfaces.NodeID
) AS q1
INNER JOIN (
SELECT
Interfaces.NodeID AS InterfaceID,
Nodes.Caption AS NodeName,
Interfaces.Status as Status,
Count(Nodes.Caption) as ndown
FROM
Nodes INNER JOIN Interfaces ON (Nodes.NodeID = Interfaces.NodeID)
WHERE
(
(
(Interfaces.Status = '1'))
)
GROUP BY Nodes.NodeID, Nodes.Caption, Interfaces.Status, Interfaces.NodeID
) AS q2
ON (q1.NodeID = q2.InterfaceID)
order by down Desc
당신은 쿼리를 결합 할 수 있습니다
어떤 색인이 있습니까? 테이블 구조가 뭐니? – JNK
어느 SQL ... SQL 서버, Oracle, MySQL ??? – DRapp
SQL Server 2005 – user453949