Select * from OPENQUERY (PORTAL,
''SELECT st.last AS "Last Name", st.first AS "First Name", ct.DeviceName, SUM
(ct.PageCount) AS "Count", pm.TotalPerPage
FROM printer_stats.Counts ct
INNER JOIN dv.staff st on st.id = ct.UserID
LEFT JOIN network_map.PrintersToDevices ptd ON ptd.DeviceID = ct.DeviceID
LEFT JOIN network_map.PrinterModels pm ON ptd.PrinterID = pm.PrinterID
WHERE ct.UserID = "'+@UserID+'" and ct.PageCount > 0 and ct.Date >= "'+@AcademicYTD+'"
UNION
SELECT stu.last_name AS "Last Namae", stu.first_name AS "First Name",
ct.DeviceName,SUM(ct.PageCount) AS "Count", pm.TotalPerPage
FROM printer_stats.Counts ct
INNER JOIN dv.student stu on stu.username = ct.Username
LEFT JOIN network_map.PrintersToDevices ptd ON ptd.DeviceID = ct.DeviceID
LEFT JOIN network_map.PrinterModels pm ON ptd.PrinterID = pm.PrinterID
WHERE ct.UserID = "'+@UserID+'" and ct.PageCount > 0 and ct.Date
>= "'+@AcademicYTD+'"
GROUP BY ct.DeviceName
ORDER BY 4 DESC'')
Я получаю такие результаты:
Last Name First Name DeviceName Count TotalPerPage
Stewart Jesse BG-LMC-HP4100-01 39 0.0287581
Stewart Jesse BG-LMC-HP4100-02 9 0.0287581
Stewart Jesse BG-903-RI4210 2 0.013341
Stewart Jesse BG-218-HP4000 1 0.013341
NULL NULL NULL NULL NULL
Я не хочу последний ряд всех NULL.
Я знаю, что они приходят с первого SELECT
для персонала, поскольку не должно быть совпадающих строк: пользователь - студент, поэтому совпадения не будет.
Мне нужно знать, как отображать только строки с данными во всех полях.