取得最新的数据。

Jason_guo 2012-12-02 08:07:47
某个数据表里面,存放着不通过企业编号的数据。数据都有年和月,,,怎么获得这个表的所有数据的最新数据呢?
比如,有这个月数据的,就取这个月数据。没有这个月的,就取上一个月。形成一个视图。
...全文
174 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
啊,天啊,还是不行 如果年是2013,就不行了
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
版主一定不需要什么分数,我就给晴天哥哥。 谢谢二位!真心的感谢你们无私的帮助。
發糞塗牆 2012-12-02
  • 打赏
  • 举报
回复
晴天大大不经常出没而已,不然我连冒泡的机会都没有
-晴天 2012-12-02
  • 打赏
  • 举报
回复
select *,rn=identity(int,1,1) into # from 企业表 order by 企业编号,年 desc,月 desc select * from # a where not exists(select 1 from # where 企业编号=a.企业编号 and rn<a.rn)
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
版主就是版主,搞定了。感觉上面的那个仁兄的语句应该逻辑也是可以的,就是提示错误
-晴天 2012-12-02
  • 打赏
  • 举报
回复
select *,rn=identity(int,1,1) into # from 企业表 order by 企业编号,年 desc,月 desc select * from # a where not exists(select 1 from # where 企业编号=a.企业编号 and rn>a.rn)
發糞塗牆 2012-12-02
  • 打赏
  • 举报
回复
这个试试 select * from tb a where exists (select 1 from (select max(月) 月,企业编号 from tb group by 企业编号) b where a.月=b.月 and a.企业编号=b.企业编号)
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
表就是一个企业编号,一个年,一个月,和其他数据
發糞塗牆 2012-12-02
  • 打赏
  • 举报
回复
最好给出表来。 可以参考一下: select * from tb a where exists (select 1 from (select max(日期) 日期 ,主键 from tb group by 主键) b where a.日期=b.日期 and a.主键=b.主键)
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
不支持 OVER SQL 构造或语句。
learningcoder 2012-12-02
  • 打赏
  • 举报
回复
partition 后面要有个by partition by
-晴天 2012-12-02
  • 打赏
  • 举报
回复
select * from( select *,row_number()over(partition by 企业编号 order by 年 desc,月 desc) as rn from 企业表 )t where rn=1
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
select * from( select *,row_number()over(partition 企业编号 order by 年 desc,月 desc) as rn from DyncManage )t where rn=1 消息 102,级别 15,状态 1,第 2 行 '企业编号' 附近有语法错误。 不行哦,企业编号是有这个字段的。表格dyncmanage也正确的。
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
楼上太客气了,有什么不好意思的呢。 你帮我,已经万分感激。 又不是一定要帮我的。 我不好意思才对。我试试您的SQL语句,谢谢。
-晴天 2012-12-02
  • 打赏
  • 举报
回复
不好意思,贴快了. select * from( select *,row_number()over(partition 企业编号 order by 年 desc,月 desc) as rn from 企业表 )t where rn=1
-晴天 2012-12-02
  • 打赏
  • 举报
回复
select * from 企业表 a where not exists( select *,row_number()over(partition 企业编号 order by 年 desc,月 desc) as rn from 企业表 )t where rn=1
-晴天 2012-12-02
  • 打赏
  • 举报
回复
select * from 企业表 a where not exists(select 1 from 企业表 where 企业编号=a.企业编号 and 年*100+月>a.年*100+月)
Jason_guo 2012-12-02
  • 打赏
  • 举报
回复
只是要最新的一条(不同企业编号,最新的一条。形成一个视图)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧