SELECT DISTINCT a.*
FROM AuctionSell a where a.asid IN
(SELECT TOP 1 AuctionSell.asid
FROM AuctionSell
WHERE AuctionSell.CreateUID = a.CreateUID
ORDER BY asid desc)-----------------------------------------select * from AuctionSell a where
(select count(1) from AuctionSell b
where b.asid<=a.asid and a.CreateUID=b.CreateUID ) <=1 查询出来的数据分别是
ASID AID A B Price State CreateUID
735 206 NULL NULL 17.40 分配完成 66667777
739 206 NULL NULL 17.10 分配完成 666666
750 207 NULL NULL 16.40 未得标 660025
905 227 NULL NULL 14.40 分配完成 660120
933 230 NULL NULL 15.80 分配完成 66000159
998 237 NULL NULL 16.00 分配完成 660143
1069 248 NULL NULL 15.60 分配完成 660019
1122 255 NULL NULL 15.40 未得标 660068
1130 256 NULL NULL 17.60 分配完成 660010
1382 286 NULL NULL 16.00 分配完成 660096
------------------------------------------------------
714 205 NULL NULL 14.60 未得标 660007
716 205 NULL NULL 14.60 未得标 660008
718 205 NULL NULL 16.00 未得标 660084
719 205 NULL NULL 15.40 未得标 660129
721 205 NULL NULL 14.60 未得标 660009
722 205 NULL NULL 15.20 未得标 660117
723 205 NULL NULL 16.20 分配完成 660125
724 205 NULL NULL 16.30 分配完成 660037
725 205 NULL NULL 15.60 未得标 660010
726 205 NULL NULL 15.40 未得标 666888
两段语句查询出来的数据是一样多,我只取了前10条数据。有点转不过来,我在第二段查询语句后面加上ORDER BY asid desc 数据还是没变,只是顺序变,按第二段这种写法,有没有办法查询出第一段的结果?麻烦大牛解释详细点。 SQL复杂自连接
FROM AuctionSell a where a.asid IN
(SELECT TOP 1 AuctionSell.asid
FROM AuctionSell
WHERE AuctionSell.CreateUID = a.CreateUID
ORDER BY asid desc)-----------------------------------------select * from AuctionSell a where
(select count(1) from AuctionSell b
where b.asid<=a.asid and a.CreateUID=b.CreateUID ) <=1 查询出来的数据分别是
ASID AID A B Price State CreateUID
735 206 NULL NULL 17.40 分配完成 66667777
739 206 NULL NULL 17.10 分配完成 666666
750 207 NULL NULL 16.40 未得标 660025
905 227 NULL NULL 14.40 分配完成 660120
933 230 NULL NULL 15.80 分配完成 66000159
998 237 NULL NULL 16.00 分配完成 660143
1069 248 NULL NULL 15.60 分配完成 660019
1122 255 NULL NULL 15.40 未得标 660068
1130 256 NULL NULL 17.60 分配完成 660010
1382 286 NULL NULL 16.00 分配完成 660096
------------------------------------------------------
714 205 NULL NULL 14.60 未得标 660007
716 205 NULL NULL 14.60 未得标 660008
718 205 NULL NULL 16.00 未得标 660084
719 205 NULL NULL 15.40 未得标 660129
721 205 NULL NULL 14.60 未得标 660009
722 205 NULL NULL 15.20 未得标 660117
723 205 NULL NULL 16.20 分配完成 660125
724 205 NULL NULL 16.30 分配完成 660037
725 205 NULL NULL 15.60 未得标 660010
726 205 NULL NULL 15.40 未得标 666888
两段语句查询出来的数据是一样多,我只取了前10条数据。有点转不过来,我在第二段查询语句后面加上ORDER BY asid desc 数据还是没变,只是顺序变,按第二段这种写法,有没有办法查询出第一段的结果?麻烦大牛解释详细点。 SQL复杂自连接
解决方案 »
- 菜鸟问题,在SQL SERVER2005中插入一条数据,怎样实现编号的自增1.
- 如何取小数点后第2位?并加1
- 更新同一张表数据
- 有谁做过类似QQ聊天机器人那样的软件?
- insert 插入
- SQLSEREVR触发器
- 挑战SQLServer高手,如何从数据库角度限制 varbinary(max)最大长度
- 与大家探讨一个根据自然月分组统计的SQL语句
- 远程联接服务器的问题 怪!
- 如何將記錄號賦值給表中的某一字段?
- 按邹建的方法:sql05生成for 2000版本的数据库脚本,在2000中执行不了!
- 求助!想实现这样的功能:在编辑框中输入内容,点击添加按钮能够将编辑框作的内容为一个记录添加到SQL表T_M中
应该把 b.asid<=a.asid 改成 b.asid>=a.asid, 或者:
where a.asid in
(select max(asid) from AuctionShell group by CreateUID )
where b.asid>=a.asid and a.CreateUID=b.CreateUID这样改了后,就是比a.asid的值大的值,只有1个,那么也就是其他值都比这个值要小,那么这个值就是最大值。