我正在尝试从销售订单表中的第一个项目实例中检索所有字段。
Item Order Date Order Qty Item1 17/09/2013 1 Item1 20/09/2013 2 Item2 16/09/2013 2 Item2 17/09/2013 1 Item3 20/09/2013 3 Item3 20/09/2013 2 Item3 20/09/2013 1
粗体的记录是我追求的。我的登台表已按订单日期排序(稍后会订购数量)。
Select DISTINCT
和Select GROUP
不合适,因为我需要返回所有字段(还有更多未显示的字段),我不想要总订单数量。
我非常感谢帮助。
答案 0 :(得分: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;
示例here。
答案 1 :(得分:1)
如果您想在没有任何订单的情况下首次出现,请使用以下内容。但是,如果您想根据日期和数量进行订购,请按row_number函数类的顺序添加。
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;
答案 2 :(得分: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"