declare @t1 table(pro_id varchar(10),pro_name varchar(20),num int)
insert @t1 (pro_id,pro_name,num)
values('0001','百事',10)
insert @t1 (pro_id,pro_name,num)
values('0002','可乐',20)
insert @t1 (pro_id,pro_name,num)
values('0003','农夫果园',50)
insert @t1 (pro_id,pro_name,num)
values('0001','百事',30)--select * from @t1declare @t2 table(pro_id varchar(10),price_in decimal(8,2),price_out decimal(8,2))
insert @t2 (pro_id,price_in,price_out)
values('0001',0.5,1.0)
insert @t2 (pro_id,price_in,price_out)
values('0002',0.6,1.3)
insert @t2 (pro_id,price_in,price_out)
values('0003',0.5,1.0)--select * from @t2select a.pro_id,a.pro_name,sum((b.price_out-b.price_in)*a.num) from @t1 a,@t2 b
where a.pro_id=b.pro_id group by a.pro_id,a.pro_name

解决方案 »

  1.   

    坐沙发的这位兄弟注意,商品的数量不是表的一列,是要用SQL语句进行统计的
      

  2.   

    SELECT t1.pro_id, SUM(t2.price_out) - SUM(t2.price_in) AS 赢利
    FROM t1 INNER JOIN
          t2 ON t1.pro_id= t2.pro_id 
    GROUP BY t1.f_id
      

  3.   

    select sum(赢利) as 总赢利
    from (
    SELECT t1.pro_id, SUM(t2.price_out) - SUM(t2.price_in) AS 赢利
    FROM t1 INNER JOIN
          t2 ON t1.pro_id= t2.pro_id 
    GROUP BY t1.pro_id ) T
      

  4.   

    对于applekiller的回复,假定进价不变
      

  5.   

    楼上的似乎没有计算售出商品的数量
    t2表只不过是每件商品的差额,
    t1表是售出的商品,但没给出数量,
    将t1表里重复的记录相加就是售出货品的数量
      

  6.   

    商品数量可以用以下:
    select count(pro_name) from table1 group by pro_name
    赢利:
    declare @total int
    declare @price money
    select @price=price_out-price_in from table2
    set @total=select count(pro_name) from table1 group by pro_name
    select sum=@total*@price  from t1 join t2 on  t1.pro_id=t2.pro_id group by
    pro_id and t1.pro_name
      

  7.   

    skyfine(柳荣宏)   已经将我的问题解决了,我刚运行了一下查询分析器,这里果真藏龙卧虎啊
      

  8.   

    已将分数给出 skyfine(柳荣宏),请查收