在内部联接上查找最大值-SQL

问题描述

我有一个临时表,我们称其为#order,在此表中有多个订单历史记录的更改记录。

#order table

我希望看到在上例中or_chgn列的最大值,其中对订单文件进行了所有更改。

但是,当我编写查询时,得到的结果是错误的。

查询

SELECT * 
FROM t.#ORDER
INNER JOIN (
    SELECT OR_ORDN,max(OR_CHGN) OR_CHGN
    FROM t.#ORDER
    GROUP BY OR_ORDN
    ) d
ON t.OR_ORDN = d.OR_ORDN 
and t.OR_CHGN = d.OR_CHGN

消息:

Msg 4104,Level 16,State 1,Line 16

The multi-part identifier "t.OR_ORDN" could not be bound.

Msg 4104,Line 17

The multi-part identifier "t.OR_CHGN" could not be bound.

我在这里想念什么?

解决方法

您需要在外部查询的class MyClass: @classmethod def cleanOnExit(cls): # do here your cleaning import atexit ; atexit.register(MyClass.cleanOnExit) 子句中声明别名t,以便可以在from的{​​{1}}子句中引用它。 / p>

由于看起来您的架构已被称为ON,所以我正在更改别名以使内容更清楚:

JOIN

解决此每组最大n个问题的另一种常用方法是使用相关子查询,从而以某种方式简化了查询:

t

此查询将利用SELECT * FROM t.#ORDER o --> here INNER JOIN ( SELECT OR_ORDN,max(OR_CHGN) OR_CHGN FROM t.#ORDER GROUP BY OR_ORDN ) omax ON omax.OR_ORDN = o.OR_ORDN AND omax.OR_CHGN = o.OR_CHGN 上的索引。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...