-1
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 = "'[email protected]+'" and ct.PageCount > 0 and ct.Date >= "'[email protected]+'"
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 = "'[email protected]+'" and ct.PageCount > 0 and ct.Date
>= "'[email protected]+'"
GROUP BY ct.DeviceName
ORDER BY 4 DESC'')
我得到的結果是這樣的:當我使用UNION時,如何擺脫整行NULL?
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
我不希望所有的空值的最後一排。
我知道他們來自職員的第一個SELECT
,因爲應該沒有匹配的行:用戶是學生,所以不會有匹配。
我需要知道如何只顯示所有字段中的數據行。
不工作人員的SELECT也會在單獨運行時返回空值 - 沒有工會的其他部分? – 2011-12-16 00:45:54
單獨運行時,兩個部件都不會完美運行。只有當我使用UNION時,我纔會得到NULL行,並且只有當它是Student UserType時。 Staff UserType不返回NULL行。 – user1040277 2011-12-16 15:34:31
您的任何問題是否都是針對SQL Server的?如果他們都通過OpenQuery訪問MySql服務器,那麼您或多或少會浪費人們的時間,因爲他們(或者我至少)會嘗試從SQL Server角度(和語法)回答您的問題。 – 2011-12-17 01:40:45