首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个表中另一个表要考虑的最大id

比较两个表中另一个表要考虑的最大id
EN

Stack Overflow用户
提问于 2015-04-04 21:00:39
回答 3查看 105关注 0票数 2

表1

 /T1582-1997工业产品业务

1

表2

 /T1381-1997商业银行的发税标准

(1)(1)商业、金融、商业、金融、商业、商业、金融、商业、金融、商业等行业的产品

2

这是我的查询语句。

代码语言:javascript
复制
select * from table1
inner join table2
on table2.rollnumber = table1.rollnumber
where table1.Name <> table2.Name

我的目标是将table1与表2的最高ID与rollnumber进行比较,在本例中,使用此查询的结果应该为none.你的帮助非常感谢..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-04 21:09:26

尝试:

代码语言:javascript
复制
select * from table1 t1
cross apply ( select * from (select top 1 * from table2 t2 where t1.rn = t2.rn order by t2.id desc) t where t.name <> t1.name) c
票数 0
EN

Stack Overflow用户

发布于 2015-04-04 21:28:48

你可以试试这个:

代码语言:javascript
复制
DECLARE @table1 TABLE (ID INT, RollNumber INT, Name VARCHAR(100))
DECLARE @table2 TABLE (ID INT, RollNumber INT, Name VARCHAR(100))

INSERT INTO @table1 VALUES(1,4,'John Doe')

INSERT INTO @table2 
VALUES  (1,4,'Jane Doe'),
        (2,4,'John Doe');

SELECT  A.RollNumber,
        A.ID,
        A.Name,
        C.max_id
FROM @table1 A
CROSS APPLY (SELECT MAX(ID) FROM @table2 B WHERE A.RollNumber = B.RollNumber) C(max_id)
WHERE A.ID = C.max_id
票数 0
EN

Stack Overflow用户

发布于 2015-04-04 21:44:41

代码语言:javascript
复制
Select * from table1 a
join (select max(Id) id, rollnumber,max(name) name from table2 
group by rollnumber) t on t.id = a.id and t.rollnumber = a.rollnumber and t.name <> a.name;

这是一个通用的解决方案,将在流行的数据库中工作。有时也比在性能上应用函数更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29451359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档