统计查询问题

[复制链接]
查看11 | 回复7 | 2012-12-25 14:54:02 | 显示全部楼层 |阅读模式
id地名顺序
1A地1
1B地2
1C地3
1D地4
1E地5
1F地6
1G地7
1H地8
2B地1
2D地2
2E地3
2G地4
2H地5
查询 d到h结果如下:
id地名顺序
1D地4
1E地5
1F地6
1G地7
1H地8
2D地2
2E地3
2G地4
2H地5

这样能实现吗? 后面顺序可以用来统计共经过几个地方
结果也可以为
查询 d到h
id 经过地方数
1 5
2 4
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
假设你的表为a,则
select id,地名,顺序
from a
where 地名 like '[D-H]%'
order by id
返回:
id 地名 顺序
---- ---------- ----------
1D地 4
1E地 5
1F地 6
1G地 7
1H地 8
2D地 2
2E地 3
2G地 4
2H地 5
(所影响的行数为 9 行)
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
不过当地名都为中文 这样就不行了
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
select * from
(select a.F_id F_id,a.F_Order aOrder,b.F_Order bOrder from
(selectF_id ,F_Order from T_PassPlace where F_Place = 'd') a ,
(selectF_id ,F_Order from T_PassPlace where F_Place = 'h') b
where a.F_id = b.F_id) c ,T_PassPlace
where c.F_id = T_PassPlace.F_id and T_PassPlace.F_Order between c.aOrder andc.bOrder
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
T_PassPlace 表名 F_id F_Place(地点) F_Order(排序)
排序 要严格按照顺序
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
谢谢楼上兄弟但是还是不行
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
CREATE TABLE [T_PassPlace] (

[F_Id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

[F_Place] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

[F_Order] [int] NULL
) ON [PRIMARY]
GO
select * from
(select a.F_id F_id,a.F_Order aOrder,b.F_Order bOrder from
(select F_id ,F_Order from T_PassPlace where F_Place = 'd') a ,
(select F_id ,F_Order from T_PassPlace where F_Place = 'h') b
where a.F_id = b.F_id) c ,T_PassPlace
where c.F_id = T_PassPlace.F_id and T_PassPlace.F_Order between c.aOrder and c.bOrder
结果
placeorder id
d
4
1
e
5
1
f
6
1
g
7
1
h
8
2
d
1
2
e
2
2
h
3
2
回复

使用道具 举报

千问 | 2012-12-25 14:54:02 | 显示全部楼层
where 地名 in ('d',..,'h')
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行