select typeName as '类别名称'
       ,left(tDate,6) as '年月'
       ,sum(tNum) as '数量'
from ProName
group by typeName,left(tDate,6)

解决方案 »

  1.   

    SELECT
        typeName,CONVERT(CHAR(7),tDate,120),SUM(tNum)
    FROM
        ProName A
    GROUP BY
        typeName,CONVERT(CHAR(7),tDate,120)
      

  2.   

    --生成测试数据
    CREATE TABLE #ProName(tId INT,typeName VARCHAR(20),tDate DATETIME,tNum INT)
    INSERT INTO  #ProName SELECT 1,'电脑教材','2005-03-02',12
    INSERT INTO  #ProName SELECT 2,'电脑教材','2005-03-03',44
    INSERT INTO  #ProName SELECT 3,'电脑教材','2005-03-30',44
    INSERT INTO  #ProName SELECT 4,'考研教材','2005-05-02',12
    INSERT INTO  #ProName SELECT 5,'考研教材','2005-05-03',44
    INSERT INTO  #ProName SELECT 6,'考研教材','2005-05-30',44
    INSERT INTO  #ProName SELECT 7,'高校教材','2005-04-02',330
    INSERT INTO  #ProName SELECT 8,'高校教材','2005-04-03',440
    INSERT INTO  #ProName SELECT 9,'高校教材','2005-04-30',664--执行查询
    SELECT
        类别 = typeName,
        月份 = CONVERT(CHAR(7),tDate,120),
        数量 = SUM(tNum)
    FROM
        #ProName
    GROUP BY
        typeName,CONVERT(CHAR(7),tDate,120)--输出结果
    /*
    类别       月份       数量
    --------   -------    -------
    电脑教材   2005-03    100
    高校教材   2005-04    1434
    考研教材   2005-05    100
    */
      

  3.   

    declare @ProName table
    (
      tId INT,typeName VARCHAR(20),tDate varchar(10),tNum INT
    )
    INSERT INTO  @ProName SELECT 1,'电脑教材','2005-03-02',12
    INSERT INTO  @ProName SELECT 2,'电脑教材','2005-03-03',44
    INSERT INTO  @ProName SELECT 3,'电脑教材','2005-03-30',44
    INSERT INTO  @ProName SELECT 4,'考研教材','2005-05-02',12
    INSERT INTO  @ProName SELECT 5,'考研教材','2005-05-03',44
    INSERT INTO  @ProName SELECT 6,'考研教材','2005-05-30',44
    INSERT INTO  @ProName SELECT 7,'高校教材','2005-04-02',330
    INSERT INTO  @ProName SELECT 8,'高校教材','2005-04-03',440
    INSERT INTO  @ProName SELECT 9,'高校教材','2005-04-30',664
    --查询
    select typeName as '类别名称'
           ,reverse(stuff(reverse(tDate),1,charindex('-',reverse(tDate)),'')) as '年月'
           ,sum(tNum) as '数量'
    from @ProName
    group by typeName,
             reverse(stuff(reverse(tDate),1,charindex('-',reverse(tDate)),''))--结果
    /*
    类别名称                 年月                数量       
    -------------------- ------------------------------------
    电脑教材                 2005-03            100.00
    高校教材                 2005-04            1,434.00
    考研教材                 2005-05            100.00(所影响的行数为 3 行)
    */
      

  4.   

    select tId,
           typeName,
           tDate=max(tdate),
           tNum=sum(tnum)
    from ProName
    group by typename