1
我有一個表命名爲計算機,看起來像這樣:刪除表中的行,並計算
DomainPrefixedComputername | LastStartUpDate
OLDDOMAIN\Computer1 |2012-01-25
OLDDOMAIN\Computer2 |2012-02-20
OLDDOMAIN\Computer3 |2012-03-03
OLDDOMAIN\Computer4 |2012-04-15
OLDDOMAIN\Computer5 |2012-12-18
\Computer1 |2012-01-27 (computer was inserted when it had no domain affinity)
NEWDOMAIN\Computer1 |2012-02-01
NEWDOMAIN\Computer2 |2012-02-22
NEWDOMAIN\Computer3 |2012-03-23
的方法,無論是插入新DomainPrefixedComputers或現有的更新。更改進程或數據庫是不可能的。
我想要做的是刪除包含具有最舊的LastStartUpDate的計算機的行,如果在其他域中有匹配的計算機。由於計算機可能被放回到舊域中,僅刪除以OLDDOMAIN爲前綴的行是不夠的。我也不想刪除有利於非前綴計算機的行。
下面的語句讓我的非前綴計算機的列表,以及有多少地方找到:
SELECT
Replace(
Replace(
Replace(DomainPrefixedComputername, 'NEWDOMAIN\', '')
, 'OLDDOMAIN\', '')
, '\', '') AS TempDomainPrefixedComputername
, Count(DomainPrefixedComputername) AS _count_
FROM Computers
GROUP BY
Replace(
Replace(
Replace(DomainPrefixedComputername, 'NEWDOMAIN\', '')
, 'OLDDOMAIN\', '')
, '\', '')
產量:
TempDomainPrefixedComputername | _count_
Computer1 | 3
Computer2 | 2
Computer3 | 2
Computer4 | 1
Computer5 | 1
這是我會怎樣表達我的需要:
刪除最舊的LastStartUpDate行如果有其他電腦存在 同名AND ot她的電腦的前綴是 OLDDOMAIN \或NEWDOMAIN \。
我的問題是:我怎樣才能完成我想要的?
完美地回答我的問題!非常感謝! – Daro 2013-02-15 09:58:49
沒問題,樂意幫忙... – Kaf 2013-02-15 10:00:22