我在我們的環境SCCM,McAfee EPO和ActiveDirectory中爲特定計算機名稱的「用戶名」字段查詢3個不同的數據庫(總共4個字段)。邏輯上合併4列的相同信息
四列SCCM_TOP,SCCM_LAST,EPO,AD
一些元組,我得到的是這樣的:
JOE, JOE, ADMINISTRATOR, JOE
or
JOE, SARAH, JOE, JOE
or
NULL, NULL, JOE, JOE
or
NULL, NULL, JOE, SARAH
最後一個例子是最難打擊的代碼。
我正在編寫一個CASE語句,以幫助合併信息的方式給出一個 「最佳猜測」的最後一列。目前,我正在根據來自每個數據庫的另一列(「記錄的年齡」)來衡量最有效的用戶名。
CASE
WHEN ePO_Age <= CT_AGE AND NOT ePO_UN IS NULL THEN ePO_UN
WHEN NOT (SCCM_AGE) IS NULL AND NOT (SCCM_LAST_UN) IS NULL THEN SCCM_LAST_UN
WHEN NOT (SCCM_AGE) IS NULL AND NOT (SCCM_TOP_UN) IS NULL THEN SCCM_TOP_UN
WHEN NOT (AD_UN) IS NULL THEN AD_UN
ELSE NULL
END AS BestName,
但是必須有更好的方法將這些記錄合併爲一個。我的下一步是衡量「平均年齡」,然後從那裏選擇用戶名,放棄「管理員」。
任何想法或訣竅?