为组中的多个条件选择MAX

时间:2015-01-28 22:53:00

标签: sql access-vba

道歉,如果这已经得到回答,我已经足够新,以至于我甚至不知道如何搜索:

我有一张桌子:

  

批次SKU成本日期

     

1001-1 1001 .30 10-12-14
  1001-2 1001 .33 10-19-14
  1001-3 1001 .32 11-20-14
  1002-1 1002 .45 10-12-14
  1002-2 1002 .45 10-19-14
  1002-3 1002 .44 12-01-14
  1003-1 1003 .12 10-15-14
  1003-2 1003 .13 10-19-14
  1003-3 1003 .10 11-23-14

我需要总算每个SKU最旧行的成本。

预期结果:(。30 + .45 + .12)= .87

这可以通过一个查询吗?

2 个答案:

答案 0 :(得分:1)

ANSI SQL支持名为row_number()的函数,这对此类查询非常有用。以下是在这种情况下如何使用它:

select sum(cost)
from (select t.*, row_number() over (partition by sku order by date) as seqnum
      from table t
     ) t
where seqnum = 1;

答案 1 :(得分:0)

这应该有效:

select sum(t.cost)
from some_table t
join ( select sku ,
              min(some_datetime_column) oldest
       from some_table
       and some_datetime_column is not null
       group by sku
     ) s on s.sku    = t.sku
        and s.oldest = t.some_datetime_column