有表如下:
product商品
————————————————
name            price
果汁         4
自行车        450
手机         2600discount折扣
----------------
name            money
手机         500
自行车        28product商品表 记录了商品名称和价格
discount折扣表 记录了折扣的商品和折扣了多少钱
我要用一个查询查出所有商品折扣后的价格列表
select a.[name] 商品, sum(a.[price]-b.[money]) 价格 from product as  a
left outer join discount as  b on a.[name]=b.[name]
group by a.[name] 
这样查出来的结果是:
----------------
商品              价格
果汁         NULL
手机         2100
自行车        422果汁是空的,    SOS~

解决方案 »

  1.   

    select a.[name] 商品, isnull(sum(a.[price]-b.[money]),0) 价格 from product as  a 
    left outer join discount as  b on a.[name]=b.[name] 
    group by a.[name]  
      

  2.   


    select a.[name] 商品, sum(inull(a.[price],0)-isnull(b.[money],0)) 价格 from product   a 
    left  join discount  b on a.[name]=b.[name] 
    group by a.[name]  
      

  3.   

    select a.[name] 商品, 
          sum(a.[price]-isnull(b.[money],0))价格 
    from  product as  a 
          left outer join discount as  b on a.[name]=b.[name] 
    group by a.[name] 
      

  4.   

    我想要的结果是 所有商品 经过折扣后的价格列表:---------------- 
    商品              价格 
    果汁         NULL 
    手机         2100 
    自行车        422
    6楼可以了,能说明一下原理吗?
      

  5.   

    left outer join discount   当然是空了
      

  6.   

    左连接,没有则为0.product有果汁
    discount没有果汁
    所以针对果汁,b.[money]=0