【问题标题】:Writing a SQL query using Min Max使用 Min Max 编写 SQL 查询
【发布时间】:2017-01-01 11:39:59
【问题描述】:

我有一个查询,提供itemdatetimeQty 的交易列表。

SELECT item_no, trx_dt, trx_tm, quantity 
FROM dbo.Item_Trx_Table 
WHERE item='Item_1' AND [doc_type]<>'w' AND transDate='2016-08-22 00:00:00.000'

我需要帮助弄清楚如何在Min(trx_tm)Max(trx_tm) 上为每个ItemDate 获取Qty

任何指导将不胜感激。

【问题讨论】:

  • 你的问题写的没有意义;您没有提供足够的信息来理解您的架构或您正在尝试做什么。
  • 什么版本的 SQL - SQL Server、Postgresql、MySQL 等?发布示例 DDL,以便我们获得完整的图片,bc 以我们无法帮助的当前信息(这都是猜测)

标签: sql max min


【解决方案1】:

有点不清楚你想要什么,但我想你想例如获取每个项目的 MAX(trx_tm) 并找到数量?如果是这样,请使用 GROUP BY Item 并选择 Item 或 Date 的 MAX 或 MIN。然后还要让 Qty 进行内部连接。我会进行四个单独的查询(MAX Item、Min Item、MAX Date、MIN Date)。

这里是第一个:获取每个 Item 的 MAX(trx_tm),并找到 Qty:

SELECT grp.Item, grp.max_trx_tm, tbl.Qty
(
    SELECT Item, MAX(trx_tm) AS max_trx_tm
    FROM dbo.Item_Trx_Table
    GROUP BY Item 
) AS grp
INNER JOIN dbo.Item_Trx_Table tbl ON (tbl.Item = grp.Item AND tbl.trx_tm = grp.max_trx_tm)
WHERE tbl.Item='Item_1' AND tbl.doc_type <> 'w' AND tbl.transDate='2016-08-22 00:00:00.000'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2021-03-08
    相关资源
    最近更新 更多