表1 cangku
id  产品名称 表2 xiaoshou  
id  产品id  数量 单价 总额 销售日期现在我要通过联合查询实现以下功能产品名称 销售数量 销售总额 
请问这样的功能sql 的联合查询语句该怎么写? ( 最好能用 LEFT 这样所有的产品名称都列出来.如果不用LEFT,是不是只能列出有过销售记录的产品?)

解决方案 »

  1.   

    select 产品名称,数量,总额 from 表1 left join 表2 on 表1.id=表2.产品id
      

  2.   

    select min(产品名称),sum(数量),sum(数量*单价)
    from cangku inner join xiaoshou on cangku.id=xiaoshou.产品id
    group by cangku.id 你说的没错
      

  3.   

    select a.产品名称,isnull(sum(b.数量),0) as 销售数量,isnull(sum(总额),0) as 销售总额 from cangku a left join xiaoshou b on a.id=b.产品id  
    group by a.产品名称
      

  4.   

    select 
       cangku.产品名称,
       sum(xiaoshou.数量) as 销售数量,
       sum(xiaoshou.总额) as 销售总额
    from
       cangku 
    left join
       xiaoshou
    on 
       cangku.id=xiaoshou.产品id  
    group by 
       cangku.产品名称
      

  5.   

    select 产品名称,sum(数量),sum(总额) 
    from cangku,xiaoshou
    where cangku.id = xiaoshou.id
    group by cangku.id
      

  6.   

    理解错了:
    select 表1.产品名称,销售数量=sum(表2.数量),销售总额=sum(表2.总额) from 表1 left join 表2 on 表1.id=表2.产品id  
    group by 表1.产品名称
      

  7.   

    更正
    select 产品名称,sum(数量),sum(总额) 
    from cangku,xiaoshou
    where cangku.id = xiaoshou.id
    group by cangku.名称
      

  8.   

    select 产品名称,SUM(数量) as 销售数量,sum(总额)as 销售总额
    (
    select a.产品名称,B.数量,B.总额
       FROM 表1 A ,表2 b 
         where a.id=b.产品id
    )a group by 产品名称