试图在引用不同的表时获得sql中一列的最大值

本文关键字:sql 最大值 一列 引用 | 更新日期: 2023-09-27 18:26:40

我有一个问题,关于如何访问SQL代码中gradterm的最大值?下面是我的纯代码示例:

SELECT 
    Ceremony.Date, People.name, People.age
FROM 
    people
JOIN 
    Ceremony ON people.grad = Ceremony.grad

正如您所看到的,我使用两个表的grad列来根据people表中的grad来显示Ceremony表的日期。以下是我认为可以获得最大梯度值的方法:

SELECT 
    Ceremony.Date, people.name, people.age
FROM 
    people
JOIN 
    Ceremony ON MAX(people.grad) = MAX(Ceremony.grad)

当我试图执行它时,我得到了这个错误:

聚合不能出现在ON子句中,除非它在HAVING中的子查询中子句或选择列表,并且在外部引用中聚合列。

我确实尝试过用MAX函数来执行Ceremony.Date,但没有成功。这里还有一个表格的例子:

people表格:

    |name|age|gradterm|
    -------------------
    |jake|20 |A       |
    |joe |23 |B       |

Ceremony表格:

    |Date     |gradterm|
    --------------------
    |Dec 21   |   A    |
    |Fall 21  |   B    |

当人员表"A"中的gradterm时,我用来显示SQL数据的GridView(通过存储过程)将显示"Dec 21"作为Ceremony日期。此外,如果人员表中的gradterm为"B",则网格视图将显示"秋季21"。我只希望它在与典礼日期进行比较时获得最大成绩。我提前感谢大家的帮助!

试图在引用不同的表时获得sql中一列的最大值

基本上,在进行聚合之前,您需要根据其他字段进行分组

SELECT c.Date, People.name, People.age, c.GradTerm
FROM people
INNER JOIN (SELECT Date, MAX(grad) [GradTerm]
            FROM Ceremony
            GROUP BY Date) c
    ON people.grad = c.grad