数据库学德很差,我现在有一个问题
select d.ORG_NAME, count(b1),count(b2),count(b3),WTZG_BFHXZ
  from HSE_JC_WTZG, SY_ORGANIZATION d
 where d.ORG_CODE = substr(WTZG_WTSSDW_CODE, 0, 5)
   and WTZG_BFHXZ ='01' b1 and WTZG_BFHXZ <> '02' b2 and WTZG_BFHXZ <> '03'b3 
 group by d.ORG_NAME, WTZG_BFHXZ
union
select d.ORG_NAME,count(b1),count(b2),count(b3),WTZG_BFHXZ
  from HSE_JC_WTZG, SY_ORGANIZATION d
 where d.ORG_CODE = substr(WTZG_WTSSDW_CODE, 0, 5)
   and WTZG_BFHXZ <>'01' b1 and WTZG_BFHXZ ='02' b2 and WTZG_BFHXZ <> '03'b3 
 group by d.ORG_NAME, WTZG_BFHXZ
union
select d.ORG_NAME,count(b1),count(b2),count(b3), WTZG_BFHXZ
  from HSE_JC_WTZG, SY_ORGANIZATION d
 where d.ORG_CODE = substr(WTZG_WTSSDW_CODE, 0, 5)
   and WTZG_BFHXZ <>'01' b1 and WTZG_BFHXZ <> '02' b2 and WTZG_BFHXZ = '03'b3 
 group by d.ORG_NAME, WTZG_BFHXZ
各位看下错在哪?(count(b1),count(b2),count(b3)必须得显示)

解决方案 »

  1.   

    where 子句不可以使用别名select d.ORG_NAME, count(decode(WTZG_BFHXZ, '01', 1, 0)), 0, 0, WTZG_BFHXZ
      from HSE_JC_WTZG, SY_ORGANIZATION d
     where d.ORG_CODE = substr(WTZG_WTSSDW_CODE, 0, 5)
       and WTZG_BFHXZ = '01'
       and WTZG_BFHXZ <> '02'
       and WTZG_BFHXZ <> '03'
     group by d.ORG_NAME, WTZG_BFHXZ
    union
    select d.ORG_NAME, 0, count(decode(WTZG_BFHXZ, '02', 2, 0)), 0, WTZG_BFHXZ
      from HSE_JC_WTZG, SY_ORGANIZATION d
     where d.ORG_CODE = substr(WTZG_WTSSDW_CODE, 0, 5)
       and WTZG_BFHXZ <> '01'
       and WTZG_BFHXZ = '02'
       and WTZG_BFHXZ <> '03'
     group by d.ORG_NAME, WTZG_BFHXZ
    union
    select d.ORG_NAME, 0, 0, count(decode(WTZG_BFHXZ, '03', 1, 0)), WTZG_BFHXZ
      from HSE_JC_WTZG, SY_ORGANIZATION d
     where d.ORG_CODE = substr(WTZG_WTSSDW_CODE, 0, 5)
       and WTZG_BFHXZ <> '01'
       and WTZG_BFHXZ <> '02'
       and WTZG_BFHXZ = '03'
     group by d.ORG_NAME, WTZG_BFHXZ
      

  2.   

    where 条件取别名做什么呢? 这个是不符合语法的
    还有如果你的各个查询结果不存在重复数据的话 可以使用union all 这样速度快的
      

  3.   

    建议看一下一本不错的SQL基础书《oracle 10g database SQL 开发指南》
      

  4.   


    --and WTZG_BFHXZ ='01' b1 and WTZG_BFHXZ <> '02' b2 and WTZG_BFHXZ <> '03'b3   条件矛盾
    以回复http://topic.csdn.net/u/20101228/11/6f27256e-0325-49fd-bba8-5c0f82facdbb.html