• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

如何查询某字段最大值的行记录?

wuqiwyt 2014-11-26 04:23:32
看下面的图可能描绘的清楚些:


表名为qysds,表中的列分别是纳税人识别号,纳税人名称,补充申报类型,销售收入,应纳税额,所属年度。怎么用SQL语句查询不同纳税人补充申报类型为最大值的哪些行记录信息?例如上表中我想得到是下表中红色颜色信息:
...全文
349 点赞 收藏 9
写回复
9 条回复
reenjie 2014年11月27日

select  *  from 
(
select  * , row_number() over(partition by nsrsbh  order by bcsblx desc)  as rId
from qysds 
)  as  a
where rId = 1 

回复 点赞
还在加载中灬 2014年11月27日
SELECT
    T1.*
FROM
    qysds T1
    JOIN(SELECT nsrsbh,MAX(bcsblx)bcsblx FROM qysds GROUP BY nsrsbh)T2
        ON T1.nsrsbh=T2.nsrsbh AND T1.bcsblx=T2.bcsblx
那这样试试
回复 点赞
wuqiwyt 2014年11月26日
记录的查询是该纳税人补充申报类型bcsblx取最大值的那行,和销售收入无关
回复 点赞
wuqiwyt 2014年11月26日
谢谢楼上朋友们,测试后反馈。
回复 点赞
卖水果的net 版主 2014年11月26日

select * from 
(
select *  , row_number() over(partition by nsrsbh  order by xssr desc)  as rn
from qysds 
) x 
where rn = 1 
回复 点赞
--小F-- 2014年11月26日
select * from qysds as a where not exists(select 1 from qysds where nsrsbh=a.nsrsbh and bcsblx>a.bcsblx)
回复 点赞
wuqiwyt 2014年11月26日
引用 1 楼 xdashewan 的回复:
select a, max(b) from table
group by a
好像不行,还是显示全部记录
回复 点赞
还在加载中灬 2014年11月26日
SELECT
	T1.*
FROM
	qysds T1
	JOIN(SELECT nsrsbh,MAX(xxsr)xxsr FROM qysds GROUP BY nsrsbh)T2
		ON T1.nsrsbh=T2.nsrsbh AND T1.xxsr=T2.xxsr
应该可以
回复 点赞
xdashewan 2014年11月26日
select a, max(b) from table
group by a
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告