2

我正在尝试从销售订单表中项目的第一个实例中检索所有字段。

    项目 订单日期 订单数量
    项目 1 17/09/2013 1
    项目 1 2013 年 9 月 20 日 2
    项目 2 2013 年 9 月 16 日 2
    项目 2 2013 年 9 月 17 日 1
    项目 3 20/09/2013 3
    项目 3 2013 年 9 月 20 日 2
    项目 3 20/09/2013 1

粗体的记录是我所追求的。我的暂存表已经按订单日期(以及稍后的订单数量)排序。

Select DISTINCT并且Select GROUP不适合,因为我需要返回所有字段(还有更多未显示)并且我不想要总订单数量。

我将非常感谢您的帮助。

4

3 回答 3

2

这是一个使用FIRST函数的例子。

select item,
      min(orderdate) keep(dense_rank first order by orderdate, orderqty desc),
      min(orderqty) keep(dense_rank first order by orderdate, orderqty desc)
from items
group by item;

样品在这里

于 2013-09-25T11:21:35.620 回答
1

如果您想在没有任何顺序的情况下首次出现,请使用以下内容。但是如果您想根据日期和数量订购,请在 row_number 函数的 order by class 中添加。

 Select Item, Order_Date, Order_Qty from 
(select Item, Order_Date, Order_Qty, 
row_number() over(partition by Item order by null) rn
from table1) a where rn = 1;
于 2013-09-25T11:12:15.027 回答
0
select t.*
from your_table t
inner join
(
   select x.Item, min(x."Order Date") as mod
   from 
   (
      select Item, "Order Date", max("Order Qty")
      from your_table
      group by Item, "Order Date"
   ) x
   group by x.Item       
) y on y.item = t.item and y.mod = t."Order Date"
于 2013-09-25T11:01:55.033 回答