select A.jg_name,A.jg_id from B inner join A on A.jg_id=B.jg_id where B.id in(select max(B.id) from B group by B.jg_id)思路:将机构联系人按机构id(jg_id)分组 并取出最新的那个(假定机构联系人表B最新的是id最大的那个) 然后关联机构表A查出对应机构名等信息。不知能否有所帮助
如果直接关联,那么机构数据会有冗余。 如果不想机构显示重复的话可以考虑用控件嵌套显示,一个DataSet中两个表。 select * from 联系人表 where 最新 select A.机构id,B.机构名称
(select distinct 机构id from 联系人表 ) AS Ainner join 机构表 as b on a. 机构id = b.机构id
select top 10 a.*,b.name from a inner join b on a.机构id=b.id order by a.id desc
========>
用id就知道是新联系人了?
lz有点像那个木鱼,敲一下,吐一句。
inner join A on A.jg_id=B.jg_id
where B.id in(select max(B.id) from B group by B.jg_id)思路:将机构联系人按机构id(jg_id)分组 并取出最新的那个(假定机构联系人表B最新的是id最大的那个)
然后关联机构表A查出对应机构名等信息。不知能否有所帮助
如果不想机构显示重复的话可以考虑用控件嵌套显示,一个DataSet中两个表。
select * from 联系人表 where 最新
select A.机构id,B.机构名称
(select distinct 机构id from 联系人表 ) AS Ainner join 机构表 as b on a. 机构id = b.机构id
新东方 张3 新东方
李5 新东方
华尔街 xx 华尔街
sfds 华尔街现在要多出来的样子是 新东方 李五
华尔街 sfds
select A.Name,(Select Top 1 联系人 from 联系人表 where 机构id = A.id order by 联系人ID DESC) AS 联系人名from 机构表 AS A
where 联系人id=(select max(联系人id) from 联系人表) and 机构表.name=联系人表.name
你试试吧 我也是新手 错了别笑话我啊
最新时间联系人:select A.name,B.lname from A ta
inner join B on ta.id=b.机构id
where not exists(select 1 from A where 联系人时间<ta.联系人时间 and 机构id=ta.机构id)
declare @Otable Table( OID varchar(50), OName varchar(100))declare @ContactMantable Table( OID varchar(50), ContactManName varchar(100))insert @Otable values('1','test')
insert @Otable values('2','test2')insert @ContactMantable values('1','Name1')
insert @ContactMantable values('1','Name3')
insert @ContactMantable values('1','Name2')
insert @ContactMantable values('2','Name1')
insert @ContactMantable values('2','Name3')
insert @ContactMantable values('2','Name2')select A.* , B.ContactManName from @Otable A
inner join (select OID, min(ContactManName) as ContactManName from @ContactMantable Group by OID)B
on B.OID = A.OID
from 机构表 AS A
left join
联系人表 B
on A.ID=B.机构ID
where
B.ID =(
Select C.ID
from 联系人表 C
where C.机构ID = A.ID order by C.ID DESC)