sql - 如何比较重复 item_number 的日期结果?我正在寻找日期不早于 2016 年 9 月 30 日的结果
问题描述
我有一个包含交易历史记录的表,每次售出商品编号时都会为一列添加时间戳。它看起来像这样:
我需要做的是确定哪些项目自 以来没有任何交易历史。 2016-09-30
我试过这个:
SELECT * FROM IVT_ITEMTRAN WHERE TRANS_DATE < '2016-09-30 00:00:00.000'
但是我遇到的问题是我只是选择了在 2016 年 9 月 30 日之前带有时间戳的每个项目。
如何为自上面列出的日期以来没有历史记录的项目生成结果?
解决方案
很确定这会做你想要的。
SELECT *
FROM IVT_ITEMTRAN
WHERE ITEM_NUMBER NOT IN
(
SELECT ITEM_NUMBER
FROM IVT_ITEMTRAN
WHERE TRANS_DATE < '2016-09-30 00:00:00.000'
)
或者,如果您只想要 ItemNumbers,您可以使用一些聚合。
select ITEM_NUMBER
, EarliestDateSold = MIN(TRANS_DATE)
from IVT_ITEMTRAN
group by ITEM_NUMBER
having MIN(TRANS_DATE) > '2016-09-30 00:00:00.000'
推荐阅读
- node.js - 与 Mongo Compass 中某些字段的路径冲突
- visual-studio-code - 在 VSCode 中的 OCaml 中编码时注释选定文本的快捷方式
- csv - 测试重复的 CSV 文件?
- java - 为什么 getRequestUrl() 返回 StringBuffer 而不是 String?
- python - 基于概率做出选择 - Python
- angular - NullInjectorError 尝试使用 URL 路由翻译 Angular 内容?
- php - 是否可以在不重新加载页面的情况下显示 if else php 语句的结果
- python - 如何修改以下情节?
- angular - 如何使材料时间选择器出现在输入下方?(附加到输入)
- c# - 保存列表
并统一加载