在另一个查询中使用sql查询的结果

时间:2014-07-13 08:28:31

标签: sql

我在SQL Server 2008中有以下查询:

   select jra.xmin, jra.xmax, jra.ymin, jra.ymax, jra.zmin,
      jra.zmax
   from JRange jra
   join XCatalogDefinition xmf on xmf.OidOrigin = jra.Oid
   join JDPart jdp on jdp.Oid = xmf.OidDestination
   join JDObject jdo on jdo.Oid = jra.Oid
   join JNamedItem jni on jni.Oid = jdo.Oid
   where jni.itemname like 'volumen_example%'

结果如下(它返回两行)

xmin     xmax    ymin    ymax     zmin     zmax
1103.55 1104.91 1344.31 1346.46   637.66  639.28
1106.56 1107.91 1344.31 1346.46   637.66  639.28

然后我需要在另一个查询中使用上面的值;

 select 
    jni.ItemName, jdp.PartNumber, wrp.Module
 from JRange jra
 join XmadeFrom xmf on xmf.OidOrigin = jra.Oid
 join JDPart jdp on jdp.Oid = xmf.OidDestination
 join WRPARTSATTRIBUTE wrp on wrp.Oid = jra.Oid
 join JDObject jdo on jdo.Oid = jra.Oid
 join JNamedItem jni on jni.Oid = jdo.Oid

 where jra.xmin > (value xmin of the above results)
    AND jra.xmax < (value xmax of the above results)
    and jra.ymin > (value ymin of the above results)
    and jra.ymax < (value ymax of the above results)
    and jra.zmin > (value zmin of the above results)
    and jra.zmax < (value zmax of the above results)

拜托,你能帮我创建一个唯一的查询吗?

提前谢谢

1 个答案:

答案 0 :(得分:0)

只需与该子查询表进行另一次连接,并为其设置别名jra2

select jni.ItemName, jdp.PartNumber, wrp.Module
 from JRange jra
 join XmadeFrom xmf on xmf.OidOrigin = jra.Oid
 join JDPart jdp on jdp.Oid = xmf.OidDestination
 join WRPARTSATTRIBUTE wrp on wrp.Oid = jra.Oid
 join JDObject jdo on jdo.Oid = jra.Oid
 join JNamedItem jni on jni.Oid = jdo.Oid
 join 
 (select jra.Oid, jra.xmin, jra.xmax, jra.ymin, jra.ymax, jra.zmin,
      jra.zmax
   from JRange jra
   join XCatalogDefinition xmf on xmf.OidOrigin = jra.Oid
   join JDPart jdp on jdp.Oid = xmf.OidDestination
   join JDObject jdo on jdo.Oid = jra.Oid
   join JNamedItem jni on jni.Oid = jdo.Oid
   where jni.itemname like 'volumen_example%') jra2

 where jra.xmin > jra2.xmin
    AND jra.xmax < jra2.xmax
    and jra.ymin > jra2.ymin
    and jra.ymax < jra2.ymax
    and jra.zmin > jra2.zmin
    and jra.zmax < jra2.zmax