当前位置: 代码迷 >> Oracle管理 >> 求一句SQL语句,该怎么解决
  详细解决方案

求一句SQL语句,该怎么解决

热度:8   发布时间:2016-04-24 05:05:47.0
求一句SQL语句
有一个合同表
HETONG(ID,相关信息等);
合同子表
HETONG_SUB(ID,PID(外键),WUZICODE(物资编码));
有一串字符串
'WZ001,WZ002,WZ016,' 里面存了一些WUZICODE(物资编码)
还可以用到物资表
WUZI(ID,WUZICODE);

求合同中包含了字符串中所有物资编码的合同

比如有一个合同ID为101,子表中有一些数据如
ID = 1, PID = 101, WUZICODE = 'WZ001'
ID = 5, PID = 101, WUZICODE = 'WZ002'
ID = 6, PID = 101, WUZICODE = 'WZ007'
ID = 9, PID = 101, WUZICODE = 'WZ016'
这样就可以查到编号101

如果PID为101的子表没有包含字符串中所有的物资编码就不能查到

这SQL该咋写呢

------解决方案--------------------
SQL code
select HETONG.* from HETONG,HETONG_SUB    where HETONG.ID=HETONG_SUB.PID     and exists (select 1 from         (select wm_concat(WUZICODE) WUZICODE from WUZI group by WUZICODE) t            where t.WUZICODE=HETONG_SUB.WUZICODE);--少了个括号
  相关解决方案