A表 字段 NO    NAME
        11111 张三
B表 字段 NO    MONEY
        11111 1000
        11111 500
        11111 2000
        22222 300
        ..... ...
C表 字段 NO    PRICE   TYPE
        11111 500     Retail
        11111 2000    Retail
        ..... ...     ......
求解,用一条SQL语句查询条件是B.NO=A.NO,C.NO=A.NO,C.TYPE="RETAIL"得出B.MONEY相加,和C.PRICE相加。结果如下
NO    NAME   MONEY    PRICE
11111 张三     3500     3500

解决方案 »

  1.   

    select A.NO,    A.NAME,SUM(B.MONEY),SUM(C.PRICE)
    from A  inner join B on  A.NO =B.NO
            inner join C on  A.NO =C.NO 
            
      
      

  2.   

    Create table A表(NO char(8),NAME char(50))
    Insert A表
    select '11111','张三' Create table B表(NO char(8),MONEY int)
    Insert B表
    select '11111','1000'  union all 
    select '11111','500' union all 
    select '11111','2000' union all 
    select '22222','300' Create table C表(NO char(8),PRICE int,TYPE char(8))
    Insert C表
    select '11111','500','Retail' union all 
    select '11111','2000','Retail' 
    select A.*,SUM(C表.PRICE) as PRICE from 
    (select A表.NO,A表.NAME,SUM(B表.MONEY) as MONEY from A表  
    inner join B表 on  A表.NO =B表.NO group by A表.NO ,A表.NAME) A,C表 
    where A.NO=C表.NO group by A.NO,A.NAME,A.MONEY
    NO       NAME         MONEY       PRICE
    -------- -----------
    11111    张三         3500        2500(1 行受影响)
      

  3.   

    SELECT 
        a.no, 
        a.name,
        b.money,
        c.price
    FROM a INNER JOIN (SELECT
                            b.no, 
                            SUM(b.money) AS money 
                       FROM b
                            GROUP BY b.no)b
                 ON a.no = b.no
           INNER JOIN (SELECT c.no,
                              SUM(c.price) AS price 
                              FROM c
                              WHERE c.type = 'Retail' 
                              GROUP BY c.no)c
                 ON a.no = c.no    
      

  4.   

    Create table A(NO char(8),NAME char(50))
    Insert A
    select '11111','张三' 
     
    Create table B(NO char(8),MONEY int)
    Insert B
    select '11111','1000'  union all 
    select '11111','500' union all 
    select '11111','2000' union all 
    select '22222','300' 
     
    Create table C(NO char(8),PRICE int,TYPE char(8))
    Insert C
    select '11111','500','Retail' union all 
    select '11111','2000','Retail' 
            
    SELECT a.NO,a.NAME,SUM(b.money) AS money,
    (SELECT SUM(c.price) FROM a,c WHERE a.NO=c.NO) AS price
     FROM a,b WHERE a.NO=b.no GROUP BY a.NO,a.NAME
      

  5.   

    Create table A(NO char(8),NAME char(50))
    Insert A
    select '11111','张三' 
     
    Create table B(NO char(8),MONEY int)
    Insert B
    select '11111','1000'  union all 
    select '11111','500' union all 
    select '11111','2000' union all 
    select '22222','300' 
     
    Create table C(NO char(8),PRICE int,TYPE char(8))
    Insert C
    select '11111','500','Retail' union all 
    select '11111','2000','Retail' 
            
    SELECT a.NO,a.NAME,SUM(b.money) AS money,
    (SELECT SUM(c.price) FROM a,c WHERE a.NO=c.NO) AS price
     FROM a,b WHERE a.NO=b.no GROUP BY a.NO,a.NAME
      

  6.   


    Create table A表(NO char(8),NAME char(50)) 
    Insert A表 select '11111','张三'
    Create table B表(NO char(8),MONEY int) 
    Insert B表 select '11111','1000'  union all 
    select '11111','500' union all 
    select '11111','2000' union all 
    select '22222','300'   
    Create table C表(NO char(8),PRICE int,TYPE char(8)) 
    Insert C表 select '11111','500','Retail' union all 
    select '11111','2000','Retail' 
    select a.no,name,money,price
    from A表 a join (
    select no,SUM(money) as [money] from B表 group by NO
    )as b
    on a.no=b.NO
    join
    (select no,SUM(price) as price from
     C表 where TYPE='retail'
      group by NO) as c
    on a.NO=c.NO
      

  7.   

    select 
            a.NO
            ,isnull(sum(b.MONEY),0) AS MONEY
            ,isnull(sum(c.PRICE),0) AS PRICE 
        from a
            left join b on a.NO=b.NO
            left join c on a.NO=c.NO and c.TYPE='Retail'
        grup by a.NO
      

  8.   


    仰泳的鱼谢谢指教,太完美的答案了。
    http://bbs.csdn.net/topics/390288622?page=1#post-392977725
    这个贴子也没结,你回复一下,把分送你。谢谢。