sql - SQL:向现有 MAX 日期查询添加另一个 MAX 字段
问题描述
我有一个现有查询,该查询正在为该特定项目的每条记录获取以下 exdt 字段的最大日期。我正在尝试向 sqn 字段添加一个额外的 MAX 计算,本质上是同时选择具有最高 exdt 和 sqn 字段的记录。我尝试在 WHERE 中添加一个额外的 "AND (a.sqn = (SELECT MAX(sqn) ,它似乎不喜欢多选。
SELECT a.item, a.cpc, dt.dsc, a.exdt, a.sqn
FROM dbo.ct AS a INNER JOIN dbo.dt ON a.cpc = dt.cpc
WHERE (a.exdt = (SELECT MAX(exdt) AS exdt FROM dbo.ct AS a
任何帮助,将不胜感激!
谢谢。
解决方案
获取具有两个字段最大值的记录的脚本如下
SELECT a.item, a.cpc, dt.dsc, a.exdt, a.sqn
FROM dbo.ct AS a INNER JOIN dbo.dt ON a.cpc = dt.cpc
WHERE
a.exdt = (SELECT MAX(exdt) AS exdt FROM dbo.ct )
and
a.sqn= (SELECT MAX(sqn) AS exdt FROM dbo.ct)
您还可以按如下方式使用CTE
with
cte_principal as
(SELECT a.item, a.cpc, dt.dsc, a.exdt, a.sqn
FROM dbo.ct AS a INNER JOIN dbo.dt ON a.cpc = dt.cpc),
cte_max_exdt as (SELECT MAX(exdt) AS exdt FROM dbo.ct),
cte_max_sqn as (SELECT MAX(sqn) AS exdt FROM dbo.ct)
select p.* from cte_principal p
inner join cte_max_exdt on p.exdt =cte_max_exdt.exdt
inner join cte_max_sqn pn p.sqn=cte_max_sqn.sqn
推荐阅读
- python - 使用 BS4 抓取网页数据 - Python
- openapi - Fastify addSchema 为 OpenAPI 2.0 定义对象提供有意义的名称
- php - Symfony ResponseEvent 参数
- c# - 旋转列中的值以用作 Telerik Grid 中的多列标题
- python - How can i get the user's current voice channel ID?
- javascript - MediaRecorder 在本地工作,但不在服务器上返回数据
- docker - 使用覆盖网络按名称访问第二个 Docker 主机上的容器
- r - left_join 命令警告消息
- sql - Oracle将行复制到具有不同日期的同一个表中
- javascript - html dir = rtl,日期时间对齐问题