【发布时间】:2021-10-30 05:41:31
【问题描述】:
我有一张如下表:
| Order_ID | Ship_num | Item_code | Qty_to_pick | Qty_picked | Pick_date |
|---|---|---|---|---|---|
| 1111 | 1 | 1 | 3000 | 0 | Null |
| 1111 | 1 | 2 | 2995 | 1965 | 2021-05-12 |
| 1111 | 2 | 1 | 3000 | 3000 | 2021-06-24 |
| 1111 | 2 | 2 | 1030 | 0 | Null |
| 1111 | 3 | 2 | 1030 | 1030 | 2021-08-23 |
| 2222 | 1 | 3 | 270 | 62 | 2021-03-18 |
| 2222 | 1 | 4 | 432 | 0 | Null |
| 2222 | 2 | 3 | 208 | 0 | Null |
| 2222 | 2 | 4 | 432 | 200 | 2021-05-21 |
| 2222 | 3 | 3 | 208 | 208 | 2021-08-23 |
| 2222 | 3 | 4 | 232 | 200 | 2021-08-25 |
从这张表中, 我只想显示具有最新 ship_num 信息的行,而不是最新的 pick_date 信息(我被引导到这样的问题,需要返回具有最新进入时间的行,我不是在寻找)订单即,我想要它如下
| Order_ID | Ship_num | Item_code | Qty_to_pick | Qty_picked | Pick_date |
|---|---|---|---|---|---|
| 1111 | 3 | 2 | 1030 | 1030 | 2021-08-23 |
| 2222 | 3 | 3 | 208 | 208 | 2021-08-23 |
| 2222 | 3 | 4 | 232 | 200 | 2021-08-25 |
我尝试了以下查询,
select order_id, max(ship_num), item_code, qty_to_pick, qty_picked, pick_date
from table1
group by order_id, item_code, qty_to_pick, qty_picked, pick_date
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
我已经在这个最新的问题中解释了(在中间),上一个问题的最佳答案与返回具有最新条目“时间”的行有关,我正在寻找 max(ship_num ) 以及与之相关的所有行。
-
你并没有真正解释,@Mupp,但我喜欢我评论过,这应该是对你原来问题的编辑,不是转发
-
哦,对不起,我实际上先尝试了编辑。下次我会记住这一点。我真的是堆栈溢出的新用户。再次抱歉。
-
我感觉其实最新的ship_num信息就是最新的pick_date对应的ship_num,是不是搞错了?在这种情况下,
max()函数可以放在这个日期,一个“简单”的分组应该可以工作 -
这能回答你的问题吗? Get top 1 row of each group
标签: sql sql-server join aggregate aggregate-functions