日期:2014-05-16  浏览次数:20557 次

获取不同信息的最新信息
table 格式:
id    nametype   step  comments
1     design     1     afasdfa
2     code       1     wewewe
3     design     2     irerer

我想查找出来的样式:
  nametype   step  comments
    design     2     irerer
    code       1     wewewe

也就是  当nametype 为‘design’ 且step为最大时查询出来  ,相同的nametype  根据step取最新的数据
------解决方案--------------------
select * from table  a
where not exists( select id from table  b on a.nametype=b.nametype 
       and a.step<b.step  )
------解决方案--------------------
select *
from table a
where exists (select 1 from (select nametype ,max(step)step from table where nametype ='design' group by nametype ) b where a.nametype=b.nametype and a.step=b.step)
and nametype ='design'
------解决方案--------------------
引用:
table 格式:
id    nametype   step  comments
1     design     1     afasdfa
2     code       1     wewewe
3     design     2     irerer

我想查找出来的样式:
  nametype   step  comments
    design     2     irerer
    code       1     wewewe

也就是  当nametype 为‘design’ 且step为最大时查询出来  ,相同的nametype  根据step取最新的数据
code貌似不满足你的需求哦
------解决方案--------------------
你是不是这个意思?
select [id],[nametype], [step] from(select *,ROW_NUMBER () over (partition by nametype order by step desc) as row from [Table])t where t.row=1

--id nametype step
--2 code 1
--3 design 2

------解决方案--------------------
引用:
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2014-01-15 10:27:37
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
-- Dec 28 2012 20:23:12 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[Table]
if object_id('[Table]') is not&nb