sql - 是否有可以返回完整日期时间值的 MIN() 替代方法?
问题描述
我为我们的 ERP 系统在数据库中添加了一个表来跟踪与发货日期相关的信息,并且我需要识别第一个和最后一个日期时间条目。该表由我在另一个表上的触发器填充,并填充了更改写回数据库的日期时间。
SELECT
TOP (100) PERCENT
SalesOrder,
MIN(NewShipDate) AS NewShipDate,
MAX(OldShipDate) AS OldShipDate
FROM dbo.ShipDateHistory
GROUP BY SalesOrder
正如预期的那样 MIN(NewShipDate) 返回一个最小值;问题是同一日期可能有多个条目,所以我试图找到一种方法让它从表中返回完整的最小日期时间。
我看到 min() 的结果只显示日期:
000000000172682 2019-01-29 NULL
这对于日期是正确的,但是在同一日期的该订单的表格中有两个条目:
表格示例:
SalesOrder OldShipDate NewShipDate LastOperator ChangeDate
000000000172682 NULL 2019-01-29 RJB 2019-01-29 09:41:13.150
000000000172682 NULL 2019-01-29 RJB 2019-01-29 09:41:40.097
理想情况下,我会看到完整的日期时间:
000000000172682 2019-01-29 09:41:13.150 NULL
解决方案
会不会是这个?
SELECT
TOP (100) PERCENT SalesOrder, NewShipDate AS NewShipDate, OldShipDate AS OldShipDate FROM dbo.ShipDateHistory
where NewShipDate = (Select min(NewShipDate) from dbo.ShipDateHistory group by SalesOrder)
推荐阅读
- javascript - 无法获取 Angular 材质自动完成值
- reactjs - 如何在jsx反应中访问数组中的数组第一个元素?
- c++ - 弦乐基础
- c# - 我需要自己在 xamarin.forms 中清理内存吗?
- php - Laravel 过滤嵌套关系
- javascript - Javascript Jest 遇到了意外的令牌
- c++ - libcxx std::counting_semaphore 如何为发布/获取实现“强烈发生之前”?
- javascript - 实现 JS 装饰器来包装类
- mysql - ROW_NUMBER() OVER (PARTITION BY ORDER BY)。与“WITH AS”和“WHERE”结合使用以限制结果时的性能?
- javascript - Azure Maps SDK 弹出窗口在初始加载后未打开