一个表 A
结构和数据如下:
_______________________________________
| 字段1 | 字段2 | 字段3 |
----------------------------------------
| A-1 | 字段2 | 187 |
----------------------------------------
| A-2 | 字段2 | 187 |
----------------------------------------
| A-3 | 字段2 | 187 |
----------------------------------------
| B-2 | 字段2 | 201 |
----------------------------------------
| B-1 | 字段2 | 201 |
----------------------------------------
......................
要求查询的数据为: 字段3中的数据要求唯一,不能重复,字段1中的数据要求取最后一笔记录,也就是“-”后面的数字 最大的一个记录以上的数据,查询后数据为:A-3 字段2 187
B-3 字段2 201....................
请教各位!谢谢。急着结贴。
结构和数据如下:
_______________________________________
| 字段1 | 字段2 | 字段3 |
----------------------------------------
| A-1 | 字段2 | 187 |
----------------------------------------
| A-2 | 字段2 | 187 |
----------------------------------------
| A-3 | 字段2 | 187 |
----------------------------------------
| B-2 | 字段2 | 201 |
----------------------------------------
| B-1 | 字段2 | 201 |
----------------------------------------
......................
要求查询的数据为: 字段3中的数据要求唯一,不能重复,字段1中的数据要求取最后一笔记录,也就是“-”后面的数字 最大的一个记录以上的数据,查询后数据为:A-3 字段2 187
B-3 字段2 201....................
请教各位!谢谢。急着结贴。
解决方案 »
- 求大牛们指点个SQL。
- 关于往表中递增插入数据和等价插入数据的问题。
- 问个SQL查询相同记录的问题!
- RIGHT OUTER JOIN与LEFT OUTER JOIN的关系?
- 求助:按日期分组的问题?
- 如何用触发器,根据一个表中记录的增、删、改来增加、删除及修改另一个表的字段(不是数据)?
- sql存储过程 让他可以到指定路径下找到图片并插入到表中(这些全由存储过程做,客户端只传递参数 和调用他就行)大侠帮忙
- 请问:foxpro交叉表在sql里面怎样实现?
- SQL Server7中怎么恢复数据
- 处理问题
- bcp out 嵌套进 for 时候的 碰到斜杠
- sqlserver2000,数据库服务器cpu老是99%,怎么办?
*
from
tb t
where
字段1=(select max(字段1) from tb where 字段2=t.字段2 and 字段3=t.字段3)
=(SELECT MAX(RIGHT(COL1,LEN(COL1)-2)) FROM TB
WHERE COL3=T.COL3 AND COL2=T.COL2 AND
SUBSTRING(COL1,1,CHARINDEX('-',COL1)-1)=SUBSTRING(T.COL1,1,CHARINDEX('-',COL1)-1))不好意思没考虑周到
-- Author :SQL77(只为思齐老)
-- Date :2010-02-01 15:27:15
-- Version:
-- Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
-- Aug 6 2000 00:57:48
-- Copyright (c) 1988-2000 Microsoft Corporation
-- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:#TB
if object_id('tempdb.dbo.#TB') is not null drop table #TB
go
create table #TB([COL1] varchar(3),[COL2] varchar(5),[COL3] int)
insert #TB
select 'A-1','字段2',187 union all
select 'A-2','字段2',187 union all
select 'A-3','字段2',187 union all
select 'B-2','字段2',201 union all
select 'B-1','字段2',201
--------------开始查询--------------------------SELECT * FROM #TB T WHERE RIGHT(COL1,LEN(COL1)-2)
=(SELECT MAX(RIGHT(COL1,LEN(COL1)-2)) FROM #TB
WHERE COL3=T.COL3 AND COL2=T.COL2 AND
SUBSTRING(COL1,1,CHARINDEX('-',COL1)-1)=SUBSTRING(T.COL1,1,CHARINDEX('-',COL1)-1))
----------------结果----------------------------
/* (所影响的行数为 5 行)COL1 COL2 COL3
---- ----- -----------
A-3 字段2 187
B-2 字段2 201(所影响的行数为 2 行)
*/