select 
    sum(t.产量) 总产量
from 
(
select 
    工作面编号,
    工作日期,
    产量 
from
    table_name a
where 
    a.工作日期=(select max(b.工作日期) 
                from table_name b
                where b.工作面编号=a.工作面编号) 
) t参考,未经测试.

解决方案 »

  1.   

    select 工作面编号,max(工作日期),sum(产量) from tab_name 
    group by 工作面编号
      

  2.   

    sqlserver中可以使用grouping。oracle中没试过
      

  3.   

    select sum(产量) from tab_name where 工作日期 in (select max(工作日期) from tab_name group by 工作面编号);
      

  4.   

    这么写:select sum(产量) from tab_name where (工作面编号,工作日期) in
       (select 工作面编号,max(工作日期) from tab_name group by 工作面编号);
      

  5.   

    select sum(产量) from tab_name 
    where (工作面编号,工作日期) in 
       (select 工作面编号,max(工作日期) from tab_name group by 工作面编号);is ok!
      

  6.   

    SELECT SUM(产量) FROM TAB_NAME WHERE 工作日期 IN (select max(工作日期) FROM TAB_NAME GROUP BY 工作编号);当然如果用IN操作慢的话可以用exists或者关联:)
      

  7.   

    select sum(产量) from tab_name where 工作日期 in (select max(工作日期) from tab_name group by 工作面编号)