日期:2014-05-17  浏览次数:20456 次

求教,急!两天都没有解决,关于三个表连接之后的数据去除重复的问题。
本帖最后由 liao_1000 于 2013-10-09 16:04:10 编辑
关于三个表连接之后的数据去除重复的问题。
一、CUST表(用于记录公司):
NO(公司编号),COM(公司名)
1           公司A
2           公司B
3           公司C   

二、LM表(用于记录公司的联系人,一个公司多个联系人):
NO(公司编号),M_LINK(联系人)
1       张1   
1       李2   
1       何3   
2       赵4 
2       王5  
2       钱6   
3       李7  


三、LOG表(用于记录联系日志):
NO(公司编号),G_LINK(联系人名),TIME(时间)
1   张1   2013/09/12
1   李2   2013/10/12
1   李2   2013/10/12(有可能跟上一条完全相同的,怎么去重?)
2   赵4   2013/11/11
2   王5   2013/11/11(可能时间相同,人不同)
2   钱6   2013/08/03
3   李7   2013/11/11
1   张1   2013/09/11

三个表连接之后的数据去除重复想得到的效果是:只出现每个公司的一个联系人的其中一个最新日志记录

COM(公司名),LINK(联系人名),TIME(时间)
 
 公司A  李2   2013/10/12
 
 公司B  赵4   2013/11/11

 公司C  李7   2013/11/11
多表连接 去重

------解决方案--------------------
create table CUST
(
no int,
com nvarchar(10)
)
go
create table LM
(
no int,
com nvarchar(10),
M_LINK nvarchar(10)
)
go

create table [LOG]
(
no int,
M_LINK nvarchar(10),
TIME datetime
)
go

insert into cust values(1,'公司A')
insert into cust values(2,'公司B')
insert into cust values(3,'公司C')
insert into lm values(1,'公司A','张1')
insert into lm values(1,'公司A','李2')
insert into lm values(1,'公司A','何3')
insert into lm values(2,'公司B','赵4')
insert into lm values(2,'公司B','王5')
insert into lm values(2,'公司B','钱6')
insert into lm values(3,'公司C','李7')

insert into [log] values(1,'张1','2013/09/12')
insert into [log] values(2,'李2','2013/10/12')
insert into [log] values(3,'李2','2013/10/12')
insert into [log] values(4,'赵4','2013/11/11')
insert into [log] values(5,'王5','2013/11/11')
insert into [log] values(6,'钱6','2013/08/03')
insert into [log] values(7,'李7','2013/11/11')
insert into [log] values(8,'张1','2013/09/11')

select b.com,b.m_link,max(c.time