SQL语句如下SELECT  
SUM(VW_LSXHMX.SL*ISNULL(VW_LSXHMX.DJ_3,0) )  AS CBJE 
FROM (
select DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,
SUM(SL) AS SL,SUM(SL*CKJ) AS BZJE,sum(JE) AS JE,sum(BYZD9) AS BYZD9,LX from VW_LSXHMX_A  GROUP 
BY DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,LX )
 VW_LSXHMX left outer join (select distinct LSDJBH,RQ,SPDM,DM1,sum(SL) as SL,sum(JE) as 
JE,SUM(JE_2) AS JE_2 from VW_SDJSD where VW_SDJSD.JZ='1' GROUP BY  LSDJBH,RQ,SPDM,DM1) 
VW_SDJSD  on  VW_LSXHMX.DJBH=VW_SDJSD.LSDJBH AND VW_LSXHMX.SPDM=VW_SDJSD.SPDM AND
 VW_LSXHMX.DM1=VW_SDJSD.DM1,SHANGPIN,KEHU,DANWEI,FJSX1,FJSX2,FJSX3,FJSX4  WHERE 
VW_LSXHMX.SPDM=SHANGPIN.SPDM AND VW_LSXHMX.DM1=KEHU.KHDM AND SHANGPIN.DWMC = 
DANWEI.DWDM  AND SHANGPIN.FJSX1=FJSX1.SXDM AND SHANGPIN.FJSX2=FJSX2.SXDM AND 
SHANGPIN.FJSX3=FJSX3.SXDM AND SHANGPIN.FJSX4=FJSX4.SXDM  AND ((VW_LSXHMX.LX = '0') ) GROUP BY KEHU.KHDM,KEHU.KHMC,KEHU.BYZD8运行后,提示我列名DJ_3无效。
当我把(
select DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,
SUM(SL) AS SL,SUM(SL*CKJ) AS BZJE,sum(JE) AS JE,sum(BYZD9) AS BYZD9,LX from VW_LSXHMX_A  GROUP 
BY DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,LX )
这句话删除了之后,提示我列名LX无效,然后我也把这句话删除了AND ((VW_LSXHMX.LX = '0') ) 
我想请问,是什么原因造成列名无效的
我该怎么改,才能让他有效

解决方案 »

  1.   


    SELECT  
    SUM(VW_LSXHMX.SL*ISNULL(VW_LSXHMX.DJ_3,0) )  AS CBJE 
    FROM (
    select DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,
    SUM(SL) AS SL,SUM(SL*CKJ) AS BZJE,sum(JE) AS JE,sum(BYZD9) AS BYZD9,LX 
         --你这里没有select到别名DJ_3,所以最上边的列DJ_3是无效的! 仔细看看其他的吧!
    from VW_LSXHMX_A  
    GROUP BY DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,LX ) VW_LSXHMX 
    left outer join 
    (select distinct LSDJBH,RQ,SPDM,DM1,sum(SL) as SL,sum(JE) as 
    JE,SUM(JE_2) AS JE_2 
    from VW_SDJSD where VW_SDJSD.JZ='1' 
    GROUP BY  LSDJBH,RQ,SPDM,DM1) VW_SDJSD  
    on  VW_LSXHMX.DJBH=VW_SDJSD.LSDJBH AND VW_LSXHMX.SPDM=VW_SDJSD.SPDM AND
    VW_LSXHMX.DM1=VW_SDJSD.DM1,SHANGPIN,KEHU,DANWEI,FJSX1,FJSX2,FJSX3,FJSX4  
    WHERE VW_LSXHMX.SPDM=SHANGPIN.SPDM AND VW_LSXHMX.DM1=KEHU.KHDM AND SHANGPIN.DWMC = 
    DANWEI.DWDM  AND SHANGPIN.FJSX1=FJSX1.SXDM AND SHANGPIN.FJSX2=FJSX2.SXDM AND 
    SHANGPIN.FJSX3=FJSX3.SXDM AND SHANGPIN.FJSX4=FJSX4.SXDM  [color=#FFFF00]AND ((VW_LSXHMX.LX = '0') )
      

  2.   

    那我更不明白了。我查询的是VW_LSXHMX.DJ_3
    和VW_LSXHMX_A.DJ_3有关系?
      

  3.   

    楼主在子查询时未提供[DJ_3]字段,如下代码,所以列名无效咯.select DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,
    SUM(SL) AS SL,SUM(SL*CKJ) AS BZJE,sum(JE) AS JE,sum(BYZD9) AS BYZD9,LX 
    from VW_LSXHMX_A 
    GROUP BY DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,LX 
      

  4.   

    FROM (
        select DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,JS,ZDR,YSR,JZR,JSR,BZ,SPDM,
            SUM(SL) AS SL,SUM(SL*CKJ) AS BZJE,sum(JE) AS JE,sum(BYZD9) AS BYZD9,LX 
         --你这里没有select到别名DJ_3,所以最上边的列DJ_3是无效的! 仔细看看其他的吧!
        from VW_LSXHMX_A  
        GROUP BY DJXZ,DJMC,DJBH,RQ,YSRQ,JZRQ,DM1,DM2,QDDM,YGDM,YS,JZ,
             JS,ZDR,YSR,JZR,JSR,BZ,SPDM,LX ) VW_LSXHMX  -- 里面的select的所有列就是VM_LSXHMX的列名,你看看你括号里查询有那个列没!!!
      

  5.   

    顶AcHerat,其实问题很简单不诡异.