2013-03-21 92 views
0

我有一个包含团队ID和客户端ID的事件表。虽然这两列通常具有相同的对应值,但TeamID可能会随时针对特定的ClientID而不断变化。针对列值相对另一列更改的SQL的列表

我需要的清单客户端ID的,其团队的ID将有改变和teamids他们已经改为

我开始了与

SELECT ClientID AS CID 
    FROM 
    (SELECT TeamID, count(*) as Counter 
FROM `vEvents` 
GROUP BY `ClintID`) AS tbl WHERE Counter > 1 

但我想我狂叫起来错的树。任何帮助非常感谢

安德鲁

+0

你有时间标记每个记录跟踪的变化,像lastModifiedDate? – ljh 2013-03-21 22:43:23

+0

我有一个dateCreated,dateModified和dateVerified列。验证似乎不包含空值。 – amun1000 2013-03-21 22:50:59

回答

0

愿这帮助你或给你的提示


create table Clients (ID int identity(1,1), 
         TeamID int not null, 
         ClientID int not null, 
         LastModifiedDate datetime not null 
        ) 

insert Clients values 
(1,1001,DATEADD(mi,-5,GETDATE())), 
(2,1002,DATEADD(mi,-7,GETDATE())), 
(3,1001,GETDATE())   

SELECT ClientID, TeamID 
FROM Clients 
WHERE ClientID in (select ClientID from Clients group by ClientID having COUNT(TeamID)>1) 
+0

这似乎并不奏效。如果相应的Team ID值已更改,则客户端ID需要显示两次。因此,在团队ID未更改的情况下,客户端ID不在结果集中。我与该查询给出的列表是所有客户和他们的ID的列表 – amun1000 2013-03-21 23:03:08

+0

我想我误解了你的问题,我更新了查询,这是你想要的吗? – ljh 2013-03-21 23:08:57

+0

我感谢这可能足够接近 - 需要交叉引用数据以确保,但直到明天才能这样做。我添加了一个disticnt到ClientID的第一个选择和排序,以便我可以看到客户已经更改了团队。非常感谢安德鲁 – amun1000 2013-03-21 23:27:09