如何使用两个表中的内连接从第二个表中选择底行?
此处[customer records]
包含客户详细信息,而photoinfo包含photodetails。
SELECT
CR.customernumber, CR.customername,
CR.Addressline1, CR.city, CR.state,
CR.pincode, CR.landline, CR.mobile,
CR.dob, CR.gender,
PR.FileName, CR.remarks, CR.fulladdress, CR.regno,
CR.qualification, CR.bg, CR.fname,
CR.field1, CR.field2, CR.field3, CR.field4, CR.field5,
CR.sign
from
[customer records] CR
inner join
photoinfo PR on PR.customernumber = CR.customernumber
where
CR.customernumber >= 5050 and CR.customernumber <= 5100
order by
CR.customernumber
此处filename是来自photoinfo的文本字段。我需要从photoinfo中选择文件名的最后一行
提前致谢
客户记录
cnumber cname Mobile Gender
2000 K.Deepalakshmi F
2001 J.Geetha 9789426497 F
photoinfo
cid cnumber Filename
5152 2000 B6216.jpg
5153 2001 B6203.jpg
5154 2001 B6209.jpg
5155 2001 B6205.jpg
这里我想基于cnumber(customernumber)加入上面两个表。我想加入最后一个或基于cid的photoinfo中的第一个文件名。
预期输出
cnumber cname filename Mobile Gender
2000 K.Deepalakshmi B6216.jpg F
2001 J.Geetha B6205.jpg 9789426497 F
答案 0 :(得分:-1)
创建&amp;插入客户表
create table #customer(cnumber decimal(18,0),cname varchar(100),Mobile varchar(100),Gender varchar(1))
insert into #customer values
(2000,'K.Deepalakshmi','','F'),
(2001,'J.Geetha','9789426497','F')
创建&amp;插入照片信息表
create table #photoinfo(cid decimal(18,0),cnumber decimal(18,0),filename varchar(100))
insert into #photoinfo values
(5152,2000,'B6216.jpg'),
(5153,2001,'B6203.jpg'),
(5154,2001,'B6209.jpg'),
(5155,2001,'B6205.jpg')
<强>结果强>
select c.cnumber,c.cname,p.filename,c.Mobile,c.Gender
from #customer c
join #photoinfo p on p.cnumber=c.cnumber
join (select c.cnumber,max(p.cid) cid
from #customer c
join #photoinfo p on p.cnumber=c.cnumber
group by c.cnumber) r on r.cnumber=p.cnumber and p.cid=r.cid