两个表
Table_A
ID  NAME  NOTE
1   CPU    CPU
2   硬盘    硬盘
3   LCD    LCDTABLE_B
ID   NUMBER  STOCK
1     100     华东
1     200     华北
2     400     华东
2     500     华南结果1为
ID  name  note  number
1  CPU    CPU    300
2  硬盘    硬盘    900
3   LCD    LCD     0用以下语句对么
SELECT  A.[ID], A.[NAME], A.[NOTE], SUM(B.AMOUNT]
FROM TABLE_A A, TABLE_B B
WHERE A.[ID] = B.[ID]
GROUP BY A.[ID], A.[NAME], A.[NOTE]

解决方案 »

  1.   

    select a.* , isnull(sum(b.NUMBER) , 0) NUMBER
    from a left join b
    on a.id = b.id
    group by a.ID,a.NAME,a.NOTE 
      

  2.   

    SELECT  A.[ID], A.[NAME], A.[NOTE], ISNULL(SUM(B.AMOUNT),0) NUMBER
    FROM TABLE_A A LEFT JOIN TABLE_B B
    ON A.[ID] = B.[ID]
    GROUP BY A.[ID], A.[NAME], A.[NOTE] 
      

  3.   

    create table A(ID int, NAME varchar(10), NOTE varchar(10),)
    insert into A values(1, 'CPU' , 'CPU') 
    insert into A values(2, '硬盘', '硬盘') 
    insert into A values(3, 'LCD' , 'LCD') 
    gocreate table B(ID int, NUMBER int, STOCK varchar(10))
    insert into B values(1 , 100 , '华东') 
    insert into B values(1 , 200 , '华北') 
    insert into B values(2 , 400 , '华东') 
    insert into B values(2 , 500 , '华南') select a.* , isnull(sum(b.NUMBER) , 0) NUMBER
    from a left join b
    on a.id = b.id
    group by a.ID,a.NAME,a.NOTE drop table A,B/*
    ID          NAME       NOTE       NUMBER      
    ----------- ---------- ---------- ----------- 
    1           CPU        CPU        300
    2           硬盘         硬盘         900
    3           LCD        LCD        0(所影响的行数为 3 行)
    */