SELECT DISTINCT * FROM (
SELECT AA.BUSINESS_TYPE 
        ,BB.KBN_NAME AS BUSINESS_TYPE_NAME
   FROM H001_TRANSPORT AA    
   LEFT JOIN M901_KBN BB 
     ON AA.BUSINESS_TYPE=BB.KBN_CD
WHERE AA.COMPANY_CD='00001'
AND BB.NAME_KBN_CD='22'
) B结果如下(结果一):
BUSINESS_TYPE     BUSINESS_TYPE_NAME
   2           内贸
   3           导箱
   1           出口SELECT  A.BUSINESS_TYPE 
,A.GOODS_MNG_ID        
   FROM H001_TRANSPORT A   结果如下(结果二):
BUSINESS_TYPE     GOODS_MNG_ID
   1             aa02bb
   1    aa0499bb
   1    aa0505bb
   1    aa04bb
   1    aa05bb
   1    aa0504bb
   1    aa0500bb
   1    aa0501bb
   1    aa0502bb
   1    aa0503bb
   1    aa06bb
   2    aa03bb
   2    aa0495bb
   3        aa0497bb
   3    aa01bb   
我想的是A表和B表关联一下,显示结果是BUSINESS_TYPE、BUSINESS_TYPE_NAME、GOODS_MNG_ID三列
但是B表是我关联查询出来的虚拟的表 所以不知道怎么去写 所以请大家帮下忙 我用的是Oracle数据库
先谢过大家了……

解决方案 »

  1.   

    SELECT DISTINCT aa.business_type, bb.kbn_name AS business_type_name,
                    goods_mng_id
               FROM h001_transport aa LEFT JOIN m901_kbn bb
                    ON aa.business_type = bb.kbn_cd
              WHERE aa.company_cd = '00001' AND bb.name_kbn_cd = '22'是想要这个结果吗? 
      

  2.   

    回复 jym2002: 恩 是的  
    不过问题我问错了 
    结果如下(结果二):
    BUSINESS_TYPE GOODS_MNG_ID
      1 aa02bb
      1 aa0499bb
      1 aa0505bb
      1 aa04bb
      1 aa05bb
      1 aa0504bb
      1 aa0500bb
      1 aa0501bb
      1 aa0502bb
      1 aa0503bb
      1 aa06bb
      2 aa03bb
      2 aa0495bb
      null aa0497bb
      null aa01bb   有两个null值的,查询的时候就排除掉了   
      

  3.   

    这两个null值时需要还是不需要?
    需要的话,1楼的语句应该没问题的。不需要的话 你where限制下
      

  4.   


    问题解决SELECT DISTINCT * FROM (
    SELECT AA.BUSINESS_TYPE 
            ,BB.KBN_NAME AS BUSINESS_TYPE_NAME
       FROM H001_TRANSPORT AA    
       LEFT JOIN M901_KBN BB 
         ON AA.BUSINESS_TYPE=BB.KBN_CD
    WHERE AA.COMPANY_CD='00001'
    AND BB.NAME_KBN_CD='22'
    ) B
    --在   
    LEFT JOIN M901_KBN BB 
         ON AA.BUSINESS_TYPE=BB.KBN_CD
    --的时候 可已And 将Where条件中的AND BB.NAME_KBN_CD='22' 提到ON 后面
    --这样就不用WHERE 去过滤了 数据就会保留了