社区
ASP
帖子详情
紧急请教一个不容易实现的SQL语句!
huagou
2004-08-10 09:09:09
一个表view1里有两个字段id和date,可能有些纪录是重复的。
date是四位年份和两位月份。
id date
1 200312
2 200311
3 200310
4 200307
5 200302
…… ……
现在想查询出 id,date:对于重复的记录,取出其date值的末两位的最大的那条纪录;唯一的纪录则显示该纪录。
...全文
292
24
打赏
收藏
紧急请教一个不容易实现的SQL语句!
一个表view1里有两个字段id和date,可能有些纪录是重复的。 date是四位年份和两位月份。 id date 1 200312 2 200311 3 200310 4 200307 5 200302 …… …… 现在想查询出 id,date:对于重复的记录,取出其date值的末两位的最大的那条纪录;唯一的纪录则显示该纪录。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
胖河马
2004-08-10
打赏
举报
回复
SELECT id, Max(date) FROM 表 GROUP BY id
BubbleInDiamond
2004-08-10
打赏
举报
回复
大灰狼的SQL水平……
上面两句第一句查出了id重复date不重复的语句
第二句根本是错的
mind_1220
2004-08-10
打赏
举报
回复
用刚才的那个Sql不能实现吗?
1 200312
2 200308
3 200310
2 200311
4 200307
3 200307
5 200302
查询结果:
1 200312
2 200311
3 200310
4 200307
5 200302
huagou
2004-08-10
打赏
举报
回复
大灰狼,select distinct ID,MAX(Date) from tabname
这种聚合语句只能返回一条记录。
我想返回每个ID的纪录。
请问有好的方法吗?
mind_1220
2004-08-10
打赏
举报
回复
都说过了date 要用数字类型不然不行! 我觉得上面的语句是没有问题的!
顶多这样
select distinct ID,date from tabname order by date desc
不然这样呢
select distinct ID,MAX(Date) from tabname
huagou
2004-08-10
打赏
举报
回复
谢谢 BubbleInDiamond(钻石里的泡泡)
你说的很对啊,大灰狼的两句都不能得到预定的结果。
huagou
2004-08-10
打赏
举报
回复
谢谢 BubbleInDiamond(钻石里的泡泡)
你说的很对啊,大灰狼的两句都不能得到只能的结果。
BubbleInDiamond
2004-08-10
打赏
举报
回复
楼主的问题有类似的,我没见过一条查询可以解决的,都是使用临时表好象
BubbleInDiamond
2004-08-10
打赏
举报
回复
mind_1220(大灰狼) ( ) 的select distinct ID from tabname order by date desc
如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
select top 1 ID from tabName order by date desc 查询结果1:都是错的
huagou
2004-08-10
打赏
举报
回复
谢谢,大灰狼。但是你的语句不行啊。
我在结果中返回了所有ID对应的(date最大的那条)记录。
uscool
2004-08-10
打赏
举报
回复
呵呵!正如楼上所述,使用distinct就可达到目的!
huagou
2004-08-10
打赏
举报
回复
不要想当然的把id看作是主键,它不过是一个普通字段罢了。
mind_1220
2004-08-10
打赏
举报
回复
或者 select top 1 ID from tabName order by date desc
mind_1220
2004-08-10
打赏
举报
回复
晕 早说嘛
select distinct ID from tabname order by date desc
切忌date为数字类型
xzyan80
2004-08-10
打赏
举报
回复
up
BubbleInDiamond
2004-08-10
打赏
举报
回复
樓主真強,我可是第一次聽說id還重復的(那還叫id嗎)
樓主指的重復是不是說ID號?麻煩大了,不如在程序中實現吧
huagou
2004-08-10
打赏
举报
回复
我错了,不管重复不重复了,我的意思就是 对于一个同一个ID,取出其date值的末两位的最大的那条纪录。
比如:
1 200312
2 200308
3 200310
2 200311
4 200307
3 200307
5 200302
查询结果:
1 200312
2 200311
3 200310
4 200307
5 200302
cdsun
2004-08-10
打赏
举报
回复
搂主的问题表述的有问题
对于重复的记录,取出其date值的末两位的最大的那条纪录;
重复了就意味着一样啊。还会有一个大些??
pipi1269
2004-08-10
打赏
举报
回复
view1的主键是什么,一般数据库是不允许这样的重复数据的,除非你此处的ID和DATE都不是该表的KEY值
mind_1220
2004-08-10
打赏
举报
回复
赫赫
这个还真的有一点难度哈。
我觉得你可以用取差的方法判断它们有多少为不同。
比如:A-B=C 你在判断C的位长。就可以判断A和B相差了多少为 用最大的一个与其他的所有去减,可以判断出谁最大!
但是这个Sql怎么写 我就帮你UP吧。
加载更多回复(4)
实现
紧急
联系人功能——基于SQL数据库
水平属于彩笔级别,自己开发的项目基本一步
一个
坑,这次记录开发
紧急
联系人模块遇到的一些坑。
紧急
联系人功能概要: 创建联系人 修改联系人信息 删除联系人 拨打电话
紧急
联系人功能实质就是通讯录,而通讯录,总所周知都是基于数据库
实现
的,这里使用的是Android内置的sqllite数据库。 创建DatabaseHelper: 主要是建表和增删改查的查询语句...
SQL SERVER 2000数据库置疑
紧急
模式
SQL SERVER 2000数据库,服务重启之后系统库以外的其它库都会出现置疑(置疑之前没有备份的库。除非是置疑前一秒刚备份完,或者是备份完没有再使用,可以直接恢复): 1、停掉SQL SERVER 服务(开始--控制面板--管理工具--服务--MSSQLSERVER--右键停止) 2、找到置疑库的数据文件mdf和ldf存放位置,备份此文件到其它文件夹 3、重启SQL SERV
SQL Server 2005数据库
紧急
模式与正常模式之间的切换
将数据库置为
紧急
模式可执行以下
sql语句
: alter database [dbname] set EMERGENCY 数据库从
紧急
模式恢复为正常模式: alter databaase [dbname] set ONLINE
SQL Server
紧急
状态下的数据库恢复
背景:由于服务器硬盘损坏,服务器异常关机。重新进入后,数据库为质疑状态。(数据库名字上面有个感叹号,连接不了) 经过无数次的百度以及大佬们的指点下,终于成功恢复,下面来说一下方法。 第一种: 1、在服务器上停掉出问题的数据库服务,把.mdf数据库文件和.ldf日志文件拷贝至本地。 2、本地新建
一个
同名数据库,找到文件地址,停掉sql服务后。把.mdf文件删掉(可以也把.ldf也删掉,但删不...
ASP
28,402
社区成员
356,940
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章