使用SELECT(max)T-SQL返回额外的列

Ada*_*dam 5 sql t-sql sql-server sql-server-2014

第一篇文章所以请你好.[SQL Server 2014]

我目前正在对表格进行选择,如下所示

select 
ExerciseCultures.Name,
max (convert (decimal (10,2), cast(weight as float))) as [Max Weight (KG)]
from workoutsessions
        join ExerciseCultures on workoutsessions.ExerciseID 
        = ExerciseCultures.ExerciseID
group by ExerciseCultures.Name
Run Code Online (Sandbox Code Playgroud)

返回31行,每个exerciseID一个,显示每个行的最高"权重"值.

我需要的是一个附加列,它还显示每个行的日期.日期列已经是每个行旁的workoutsessions表中的一列.

我尝试使用以下内容添加此日期列:

select 
ExerciseCultures.Name,
max (convert (decimal (10,2), cast(weight as float))) as [Max Weight (KG)],
workoutsessions.date
from workoutsessions
        join ExerciseCultures on workoutsessions.ExerciseID 
        = ExerciseCultures.ExerciseID
group by ExerciseCultures.Name,
    workoutsessions.date
Run Code Online (Sandbox Code Playgroud)

但是这会返回286行 - 父表中的所有行.我需要的是原始查询结果,只有他们各自来自workoutsessions表的日期.

有什么想法吗?

非常感谢

Pரத*_*ீப் 1

SELECT A.NAME, 
       A.[max weight (kg)], 
       B.date 
FROM   (SELECT exercisecultures.NAME, 
               Max (CONVERT (DECIMAL (10, 2), Cast(weight AS FLOAT))) AS [Max Weight (KG)] 
        FROM   workoutsessions 
               JOIN exercisecultures 
                 ON workoutsessions.exerciseid = exercisecultures.exerciseid 
        GROUP  BY exercisecultures.NAME) A 
        JOIN workoutsessions B 
          ON a.NAME = b.NAME 
             AND CONVERT (DECIMAL (10, 2), Cast(B.weight AS FLOAT)) = 
                 A.[max weight (kg)] 
Run Code Online (Sandbox Code Playgroud)