sqlserver 查询数据表中每个类别最新的一条记录


本文此处所规定的类别为省份ID,原始表如下图所示:



所使用SQL语句为:

select a.* from tbl_MaterialPice a,(select province_ID,max(price_time) price_time from tbl_MaterialPice group by province_ID) b 
where a.price_time = b.price_time and a.province_ID = b.province_ID and material_ID='1' order by a.province_ID 

最终结果如下图所示;


  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要从SQL Server一系列相似的表取几条数据,需要考虑以下几个因素: 1. 表的结构和命名:首先需要确认这一系列相似的表是否具有相同的表结构,即拥有相同的列名和数据类型。如果是相似但结构不同的表,则需要分别处理。 2. 数据需求和查询目的:确定需要从这一系列相似的表取几条数据的目的。是为了展示一个概览,还是为了分析统计数据等具体目的。 3. 数据量和性能需求:考虑这一系列相似的表的数据量大小以及查询性能的要求。如果数据量很大,可能需要对查询进行优化,以提高查询效率。 基于以上因素,可以采取以下几种方法从这一系列相似的表取几条数据: 1. 使用TOP子句:可以使用TOP子句从每张表取出指定数量的数据。例如,如果需要从每张表取出前10条数据,可以使用以下语句: SELECT TOP 10 * FROM 表名; 2. 使用ROW_NUMBER()函数:可以使用ROW_NUMBER()函数对每张表的数据进行编号,然后使用WHERE子句筛选出指定编号范围的数据。例如,如果需要取出每张表的前10条数据,可以使用以下语句: SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(ORDER BY 列名) AS RowNum FROM 表名 ) AS T WHERE T.RowNum <= 10; 3. 使用UNION ALL操作符:如果每张表的数据结构相同,可以使用UNION ALL操作符将每张表的数据合并为一个结果集。例如,如果需要取出每张表的前10条数据,可以使用以下语句: SELECT * FROM 表1 UNION ALL SELECT * FROM 表2 UNION ALL ... SELECT * FROM 表n ORDER BY 列名 LIMIT 10; 需要根据具体情况选择合适的方法,在保证查询性能的前提下,取得所需的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

11122323l123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值