select 产品名称,原始价,avg(成交价) as 平均成交价
from T1  
group by 产品名称,原始价

解决方案 »

  1.   

    select a.产品名称,a.原始价,a.成交价,b.平均成交价
    from t1 a,(select 产品名称,平均成交价=avg(成交价) from t1 group by 产品名称)b
    where a.产品名称=b.产品名称
      

  2.   

    --如果是更新t1表中的平均成交价
    update a set 平均成交价=b.平均成交价
    from t1 a,(select 产品名称,平均成交价=avg(成交价) from t1 group by 产品名称)b
    where a.产品名称=b.产品名称
      

  3.   

    select a.*,平均成交价=(select avg(成交价) from t1 where 产品名称=a.产品名称)
    from t1 a
      

  4.   

    select 产品名称,原始价,成交价,sum(成交价)/2 as 平均成交价 from TB
    GROPU BY 产品名称,原始价,成交价
      

  5.   

    To victorycyz(中海):
       结果是:   平均成效价=所有产品成效价之/产品数量
       不是我想要的To zjcxc(邹建):
       因为我的产品名称和原始价是从产品信息表(t2)查询出来的,当我用 left join关联时出现“......表名或别名不匹配”这类的错误。
      

  6.   


    以下测试无误,这不是你所想要的么?create table T1 (产品名称 varchar(5),     原始价 decimal(4,1),    成交价 decimal(4,1))
    goinsert t1 select 
    'Name1',        25.5,      18   
    union select
    'Name1',        25.5,       28.5  
    union select'Name2',        15  ,       16   
    union select
    'Name2',        15  ,       17.5 select a.*,平均成交价=(select avg(成交价) from t1 where 产品名称=a.产品名称)
    from t1 adrop table t1结果:产品名称  原始价    成交价    平均成交价                                    
    ----- ------ ------ ---------------------------------------- 
    Name1 25.5   18.0   23.250000
    Name1 25.5   28.5   23.250000
    Name2 15.0   16.0   16.750000
    Name2 15.0   17.5   16.750000(所影响的行数为 4 行)
      

  7.   

    select a.产品名称,a.原始价,b.成交价,b.平均成交价
    from t2 a left join(
    select a.产品名称,a.成交价,b.平均成交价
    from t1 a,(select 产品名称,平均成交价=avg(成交价) from t1 group by 产品名称)b
    where a.产品名称=b.产品名称
    )b on a.产品名称=b.产品名称
      

  8.   

    有点不明白,就在一个表中。用其它的也应该可以来实现的。可能只是有点麻烦。
    还想请问一下这个left join(在这里表示什么?就指这个表吗?