新手求问个三表条件查询问题

qq747426 2018-01-22 09:43:24
A表:DCSIBB(订单表) B表:SGMQAA(产品结构表) C表:TPADEA(产品信息表)
IBB003=品号 QAA001= 品号 DEA001=品号 DEA009='M'为厂内生产件

我想查询出订单表(DCSIBB)中的"品号"不存在与产品结构表(SGMQAA)(代表还没建立产品结构)且产品信息表(TPADEA)中该品号为“厂内生产件”=M的品号,因商品信息表中存在:采购件(P)、厂内生产件(M)、委外件(S)不是所有的商品信息都有产品结构,只有建立了产品结构,产品结构表中才会存在数据。 求大神解答下谢谢。
...全文
245 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq747426 2018-01-22
  • 打赏
  • 举报
回复
感谢,听雨听了大神:后面的代码可以使用了。但是感觉我写的好像代码好像挺土的,感觉不正规,感觉你第一次写的语句比较正规,但是执行后提示QAA001附近有语法错误。
听雨停了 2018-01-22
  • 打赏
  • 举报
回复
引用 1 楼 qq747426 的回复:
SELECT DISTINCT IBB003 AS 品号, IBB004 AS 品名, IBB041 AS 规格, IBB960 AS 材质, IBB961 AS 颜色, IBB962 AS 用料, IBB963 AS 用标 FROM DCSIBB WHERE IBB003 NOT IN ( SELECT QAA001 FROM SGMQAA WHERE DCSIBB.IBB003= SGMQAA.QAA001 ) --AND IBB003 NOT LIKE 'CEC%' --AND IBB003 NOT LIKE 'A%' --AND IBB004 NOT LIKE '%尾%' 以上是我写的语句,但是只能在订单表和产品结构表中查询,后面3个not like 是为了去掉一些采购件所带有有编码特性。但不够全面,还是需要靠第三个表商品信息表的DEA009中剔除掉采购件和委外件来的彻底。

SELECT DISTINCT
a.IBB003 AS 品号,
a.IBB004 AS 品名,
a.IBB041 AS 规格,
a.IBB960 AS 材质,
a.IBB961 AS 颜色,
a.IBB962 AS 用料,
a.IBB963 AS 用标
FROM
DCSIBB  a
INNER JOIN TPADEA b ON a.IBB003=b.DEA001
WHERE
IBB003 NOT IN ( SELECT QAA001 FROM SGMQAA WHERE DCSIBB.IBB003= SGMQAA.QAA001 ) 
AND b.DEA009='M'
你的语句修改应该就是变成这样的意思把
二月十六 版主 2018-01-22
  • 打赏
  • 举报
回复
是这样吗?
SELECT  *
FROM    DCSIBB
        JOIN TPADEA ON DEA001 = IBB003
                       AND DEA009 = 'M'
WHERE   DCSIBB.IBB003 NOT IN ( SELECT   QAA001
                               FROM     QAA001 SGMQAA )
听雨停了 2018-01-22
  • 打赏
  • 举报
回复

SELECT a.* FROM DCSIBB a
INNER JOIN TPADEA b ON a.IBB003=b.DEA001
WHERE b.DEA009='M' AND NOT EXISTS(
	SELECT * FROM SGMQAA c WHERE a.IBB003=c.QAA001
)
qq747426 2018-01-22
  • 打赏
  • 举报
回复
SELECT DISTINCT IBB003 AS 品号, IBB004 AS 品名, IBB041 AS 规格, IBB960 AS 材质, IBB961 AS 颜色, IBB962 AS 用料, IBB963 AS 用标 FROM DCSIBB WHERE IBB003 NOT IN ( SELECT QAA001 FROM SGMQAA WHERE DCSIBB.IBB003= SGMQAA.QAA001 ) --AND IBB003 NOT LIKE 'CEC%' --AND IBB003 NOT LIKE 'A%' --AND IBB004 NOT LIKE '%尾%' 以上是我写的语句,但是只能在订单表和产品结构表中查询,后面3个not like 是为了去掉一些采购件所带有有编码特性。但不够全面,还是需要靠第三个表商品信息表的DEA009中剔除掉采购件和委外件来的彻底。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧