sql - 只选择最新的记录
问题描述
这里有人知道吗?
select distinct
PRODID as PRODUCT_ID,
STRCDE as STORECODE,
PRCPR as Price,
STDTE as Date
from [DWSTAGE].[PRCPLN]
order by PRODID
查询结果示例
PRODUCT_ID | STORECODE | Price | Date
---------------------------------------------------
15707 | 15007 | 11 | 2012-01-03
15707 | 15007 | 13 | 2012-02-03
22102 | 15001 | 12 | 2012-01-02
40377 | 15002 | 13 | 2012-01-04
40377 | 15003 | 14 | 2012-02-03
40377 | 15003 | 15 | 2012-03-01
44775 | 15001 | 16 | 2012-06-01
我的预期结果
PRODUCT_ID | STORECODE | Price | Date
---------------------------------------------------
15707 | 15007 | 13 | 2012-02-03
22102 | 15001 | 12 | 2012-01-02
40377 | 15002 | 13 | 2012-01-04
40377 | 15003 | 15 | 2012-03-01
44775 | 15001 | 16 | 2012-06-01
解决方案
使用not exists
如下:
select distinct PRODID as PRODUCT_ID, STRCDE as STORECODE, PRCPR as Price, STDTE as Date
From [DWSTAGE].[PRCPLN] t
Where not exists
(Select 1 from [DWSTAGE].[PRCPLN] tt
Where tt.PRODID = t.PRODID
And tt.PRODUCT_ID = t.PRODUCT_ID
And tt.STDTE > t.STDTE)
order by PRODID
推荐阅读
- elasticsearch - 将 dotCMS 集群连接到外部 elasticsearch
- java - 字段需要找不到类型的 bean
- azure-devops - 在 Azure Function App 上设置 TFS 聚合器 CLI
- mysql - 如何使用两个sql表获取不匹配的列和匹配的列
- sql - Oracle - 加入多个列尝试不同的组合
- jupyter-notebook - 在 Jupyter Notebook ModuleNotFoundError: No module named 'plotly'
- python - 如何根据相应系列列中的值对一系列列应用函数?
- javascript - 需要帮助将函数的输出作为输入表单的值
- azure-functions - 绑定类型“serviceBusTrigger”未注册
- javascript - 从数据表对象中获取数据