我要得到一个视图
A   B   C 
1       2
3       4
    3   6
因为A中的值在表中可能没有,所以就为空,或者为0,B也可能在表中没有值。这样的试图怎么建。

解决方案 »

  1.   

    原表是
    NAME  MARK  BIGITEM
    A       1      1   
    A       1      2
    A       1      3
    B       1      4
    我想得到的视图是这样的
    NAME  MARK(BIGITEM = 1,2,3的和)  MARK(BIGITEM = 4 的值)
    A           3                            0
    B           0                            1
      

  2.   

    不管有多少个数据,一个NAME里面的1,2,3,4大项,必有一个不为空
      

  3.   


    SELECT NVL(C.NAME, A.NAME) 
          ,C.MARK_123
          ,NVL(A.MARK , 0) MARK_4
      FROM (
    SELECT SUM(B.MARK) AS MARK_123
          ,B.NAME
      FROM TEST01.TEST B
     WHERE B.BIGITEM IN('1', '2', '3')
     GROUP BY B.NAME ) C
     LEFT OUTER
     JOIN TEST A ON A.NAME =C.NAME
       AND A.BIGITEM = '4'
      

  4.   


    NAME  MARK(BIGITEM = 1,2,3的和)  MARK(BIGITEM = 4 的值)
     A           3                            0
     B           0                            1A  B  C 
    1      2 
    3      4 
        3  6 A的这一列
    是怎么变成
    1
    3
    0
    呀。
      

  5.   

    原表是 
    NAME  MARK  BIGITEM 
    A       1      1 
    A       1      2 
    A       1      3 
    B       1      4 
    我想得到的视图是这样的 
    NAME  MARK(BIGITEM = 1,2,3的和)  MARK(BIGITEM = 4 的值) 
    A           3                            0 
    B           0                            1 
    就看这个吧,刚开始有点晕。
      

  6.   

    好像楼顶的表达和这个不是很一致哦
    按这个描述,代码应该这么写
    create view tt_view as
    select name,sum(case when bigitem<>4 then  end)1,
      sum(case when bigitem=4 then  end)2
    from tt
    group by name