CREATE TABLE TB
 (
   id [int] IDENTITY (1, 1) NOT NULL ,
   NAME VARCHAR(10),
   num INT,
   price DECIMAL(18,2)
 )
 
 INSERT INTO Tb
 SELECT 'A' ,1,1.5
 UNION
 SELECT 'A',1,2
  UNION
 SELECT 'B',2,2
  UNION
 SELECT 'B',2,4
  UNION
 SELECT 'C',1,2
 
 SELECT * FROM tb
 
 SELECT [NAME],SUM(num),[money]=num*price FROM tb 
 GROUP BY [NAME],num,[price]想得出结果A 的总数量和总金额,现在A被拆成两行不同的结果了

解决方案 »

  1.   

    CREATE TABLE TB
     (
       id [int] IDENTITY (1, 1) NOT NULL ,
       NAME VARCHAR(10),
       num INT,
       price DECIMAL(18,2)
     )
     
     INSERT INTO Tb(NAME,num,price)
     SELECT 'A' ,1,1.5
     UNION
     SELECT 'A',1,2
      UNION
     SELECT 'B',2,2
      UNION
     SELECT 'B',2,4
      UNION
     SELECT 'C',1,2
     
     
     SELECT [NAME],num=SUM(num),[money]=sum(num*price) FROM tb 
     GROUP BY [NAME]/*
    NAME num money
    A 2 3.50
    B 4 12.00
    C 1 2.00
    */
      

  2.   

    --这样?
    [money]=sum(num*price) 
      

  3.   

    select name,sum(num),sum(num*price) from tb group by name