现在数据库中查询出来是:店名            数量           货物名称
天天            12             手机电池
天天            18             手机电池
天天            12             手机
美邦            17             衣服
美邦            10             衣服
美邦            13             衣服
美邦            10             衣服新的要求渠道            手机电池        衣服     手机
天天              30             0        12
美邦              0              50        0

解决方案 »

  1.   

    如果列不多的话可以一个一个判断  或者动态sqlselect 店名,
           sum(decode(货物名称,'手机电池',数量,0)) 手机电池,
           sum(decode(货物名称,'衣服',数量,0)) 衣服,
           sum(decode(货物名称,'手机',数量,0)) 手机
    from tb1
    group by 店名
      

  2.   

    测试数据:CREATE TABLE T170
    (
        店名 VARCHAR2(20),
        数量 NUMBER(4),
        货物名称 VARCHAR2(20)
    );INSERT INTO T170 VALUES('天天', 12, '手机电池');
    INSERT INTO T170 VALUES('天天', 18, '手机电池');
    INSERT INTO T170 VALUES('天天', 12, '手机');
    INSERT INTO T170 VALUES('美邦', 17, '衣服');
    INSERT INTO T170 VALUES('美邦', 10, '衣服');
    INSERT INTO T170 VALUES('美邦', 13, '衣服');
    INSERT INTO T170 VALUES('美邦', 10, '衣服');SELECT DISTINCT 货物名称 FROM T170SELECT * FROM VTemp1;
    CREATE OR REPLACE VIEW VTemp1 AS 
    SELECT 店名, 货物名称, SUM(数量) AS 数量
    FROM T170
    GROUP BY 店名,货物名称;
    结果:
      

  3.   

    行转列  推荐1楼的decode