当前位置: 代码迷 >> Sql Server >> 求一条SQL语句
  详细解决方案

求一条SQL语句

热度:170   发布时间:2016-04-27 19:22:12.0
求一条SQL语句,在线等
有表t1:
services portid pol pod
  b2 1 盐田 NULL
  b2 2 香港 NULL
  b2 3 NULL 高雄
  b2 4 NULL 关岛
  c1 1 盐田 NULL
  c1 2 NULL 关岛
  c1 3 NULL 纽约
  m1 1 香港 NULL
  m1 2 NULL 关岛
  ..
  ..
我要查出:从某个pol到某个pod的,而且pol的portid=1的services
例如:我查从pol='盐田'到pod='关岛'时的结果应该为:
services 
b2
c1

查从pol='盐田'到pod='关岛'时的结果应该为:
services
m1

这语句应该怎样写?

------解决方案--------------------
我被绕晕了.
------解决方案--------------------
SQL code
--trydeclare @pol varchar(16), @pod varchar(16)select pol='盐田', pod='关岛'select servicesfrom t1 twhere [email protected] and portid=1    and exists (select 1 from t1 where services=t.services and [email protected])
------解决方案--------------------
SQL code
declare @tb table(services nvarchar(5),  portid int,  pol nvarchar(5),  pod nvarchar(5))insert into @tbselect  'b2',       1,      '盐田', NULL union all select  'b2'  ,     2  ,    '香港', NULL union all select    'b2'  ,     3,      NULL, '高雄' union all select    'b2' ,      4 ,     NULL, '关岛' union all select    'c1' ,      1 ,     '盐田', NULL union all select    'c1',       2 ,     NULL, '关岛' union all select    'c1' ,      3,      NULL, '纽约' union all select    'm1' ,      1,      '香港', NULL union all select    'm1' ,      2,     NULL, '关岛' declare @pol nvarchar(5),  @pod nvarchar(5)set @pol='香港'set @pod='关岛' select a.services from @tb a,@tb b where @pol=a.pol and @pod=b.pod and a.portid=1 and a.services=b.services/*services--------m1*/如果是pol= '盐田 '到pod= '关岛 '则将set @pol='香港'改成set @pol= '盐田 '/*services--------b2c1*/
------解决方案--------------------

select 
t1.services
from 
table1 t1
join
table1 t2
t1.services=t.services
where
t1.pol='盐田' and t2.pod='关岛'
group by t1.services
------解决方案--------------------
SQL code
select      t1.services from      table1  t1 join     table1 t2 on t1.services=t.services where     t1.portid=1 and t1.pol= '盐田 ' and t2.pod= '关岛 ' group by t1.services
  相关解决方案