表结构:
  名称,供应商,颜色,其它属性,国家名称,购买数量.
查询出来结构:
表头:  名称,供应商,其它属性,颜色,国家1,国家2,国家3....
-------------------------------------------------
数据:  名称,供应商,其它属性,颜色,数量1,数量2,数量3....
用视图可以实现吗?ORACLE不是很熟悉.求SQL语句.谢谢.

解决方案 »

  1.   


    给你个参考方法:
    SELECT DEPTNO, MAX(ONCATENATED)
      FROM (SELECT DEPTNO,
                   LTRIM(SYS_CONNECT_BY_PATH(ENAME, ','), ',') ONCATENATED
              FROM (SELECT DEPTNO,
                           ENAME,
                           ROW_NUMBER() OVER(PARTITION BY DEPTNO ORDER BY ENAME) AS CURR,
                           ROW_NUMBER() OVER(PARTITION BY DEPTNO ORDER BY ENAME) - 1 AS PREV
                      FROM SCOTT.EMP)
             START WITH CURR = 1
            CONNECT BY PREV = PRIOR CURR
                   AND DEPTNO = PRIOR DEPTNO)
     GROUP BY DEPTNO
     ORDER BY 1;
      

  2.   

    原数据表样式:        proid            社员番号              社员区分             年月               上班天数       1001             100                         小明                     一月                 19       1002             101                         小红                     一月                 20       1001             100                         小明                     二月                 22       1002             101                         小红                     二月                 23       1001             100                         小明                     三月                 24       1002             101                         小红                     三月                 24执行代码: SELECT a.proid ,a.社员番号, a.社员区分,b.一月,c.二月,ISNULL( d.三月,0) as 三月 ,(b.一月+c.二月+ISNULL( d.三月,0)) as 总计
    FROM (
         SELECT DISTINCT proid ,社员番号 , 社员区分 FROM test
         )a LEFT JOIN
         (
          SELECT proid,社员番号,社员区分,作业时间 as 一月 FROM test WHERE 年月='1月'
         )b ON a.社员番号=b.社员番号 AND a.社员区分 = b.社员区分
         LEFT JOIN 
         (
          SELECT proid,社员番号,社员区分,作业时间 as 二月 FROM test WHERE 年月='2月'
         )c ON a.社员番号=c.社员番号 AND a.社员区分=c.社员区分
         LEFT JOIN 
         (
          SELECT proid,社员番号,社员区分,作业时间 as 三月 FROM test WHERE 年月='3月'
         )d ON a.社员番号=d.社员番号 AND a.社员区分=d.社员区分
      执行后数据表: proid            社员番号              社员区分       一月      二月       三月1001            100                        小明               19          22           241002            101                         小红              20          23           24这个是你要的结果吗? 最近我正好也在弄这个问题 。所以正好写了篇东西让自己记着
      

  3.   

    帮你顶上,自已尝试用过程写一个吧,一条sql是完成不了的.