我在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)
拜托,你能帮我创建一个唯一的查询吗?
提前谢谢
答案 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