当前位置: 代码迷 >> 高性能数据库开发 >> SQL语句 有点复杂
  详细解决方案

SQL语句 有点复杂

热度:7893   发布时间:2013-02-26 00:00:00.0
求一个SQL语句 有点复杂
表结构如下 
classid portname code flag portid 
331003010117 三门 331022 NULL 99 
331003010119 黄岩 331003 NULL 01 
331003010120 汕头 331022 NULL 99 
331003010122 黄岩 331003 NULL 01 
331003010123 上海 3101 NULL 99 
331003010125 黄岩 331003 NULL 01 
331003010126 上海 3101 NULL 99 
331003010128 黄岩 331003 NULL 01 

说明这个是个线路 站点表 
classid是线路 portname是站点 code是站点的编码 portid 是站点的次序 
现在想写个存储过程 code1和code2是参数传入 把符合一个classid同时有code1到code2的线路列出来 并且code1对应的portid要小于code2对应的portid

------解决方案--------------------------------------------------------
一个语句就可以搞定了吧:
假设你的表名是tb_name:

select a.*,b.* from tb_name a, tb_name b where a.code='code1值' and b.code='code2值' and a.classid=b.classid and a.portid<b.portid

你试下吧
------解决方案--------------------------------------------------------
select a.classid from(select classid,portid from TABLE where code=@code1)as a left join(select classid,portid from TABLE where code=@code2)as b on a.classid=b.classid where a.portid<b.portid
  相关解决方案