Plamen Ratchev replied to Jaison Jose
20-Nov-09 10:03 AM

Try these queries:
SELECT DISTINCT Name0, cnt, Obsolete0, CLient0, LastSWscan, LastHWscan
FROM (
SELECT a.Name0,
COUNT(*) OVER(PARTITION BY a.Name0) AS cnt,
a.Obsolete0,
a.Client0,
b.LastScandate AS LastSWscan,
c.LastHWscan
FROM v_r_system AS a
LEFT OUTER JOIN v_GS_LastSoftwareScan AS b
ON a.resourceid = b.resourceid
LEFT OUTER JOIN v_GS_WORKSTATION_STATUS AS c
ON a.resourceid = c.resourceid) AS T
WHERE cnt > 1;
or
SELECT DISTINCT
a.Name0,
d.cnt,
a.Obsolete0,
a.Client0,
b.LastScandate AS LastSWscan,
c.LastHWscan
FROM v_r_system AS a
INNER JOIN (SELECT Name0, COUNT(*) AS cnt
FROM v_r_system
GROUP BY Name0
HAVING COUNT(*) > 1) AS d
ON a.Name0 = d.Name0
LEFT OUTER JOIN v_GS_LastSoftwareScan AS b
ON a.resourceid = b.resourceid
LEFT OUTER JOIN v_GS_WORKSTATION_STATUS AS c
ON a.resourceid = c.resourceid;
or
SELECT DISTINCT
a.Name0,
a.Obsolete0,
a.Client0,
b.LastScandate AS LastSWscan,
c.LastHWscan
FROM v_r_system AS a
LEFT OUTER JOIN v_GS_LastSoftwareScan AS b
ON a.resourceid = b.resourceid
LEFT OUTER JOIN v_GS_WORKSTATION_STATUS AS c
ON a.resourceid = c.resourceid
WHERE a.Name0 IN (SELECT Name0
FROM v_r_system
GROUP BY Name0
HAVING COUNT(*) > 1);
--
Plamen Ratchev
http://www.SQLStudio.com