Sql server SQL Server:使用“子选择”选择最大值

Sql server SQL Server:使用“子选择”选择最大值,sql-server,select,max,subquery,Sql Server,Select,Max,Subquery,我试图在SQL Server中获取另一个select的结果集的最大值,但无法。我不确定我在SQL Server中做了什么错误。任何帮助都会很好 这是我的SQL: select max(A.ID), A.Name, A.RMName, A.RName, A.DName, A.Section, A.CF, A.PPV, A.ESD, A.EED, A.EJ, A.NJ, A.NAF, A.L4MAF, A.L4MJ, A.MLF, A.PL, A.PN, A.EMSFL,

我试图在SQL Server中获取另一个select的结果集的最大值,但无法。我不确定我在SQL Server中做了什么错误。任何帮助都会很好

这是我的SQL:

select 
    max(A.ID), A.Name, A.RMName, A.RName, A.DName, A.Section, A.CF, A.PPV, A.ESD,
    A.EED, A.EJ, 
    A.NJ, A.NAF, A.L4MAF, A.L4MJ, A.MLF, A.PL, A.PN, A.EMSFL, A.PV, A.FName, 
    A.FLevel, A.SC, A.PID, A.PFID 
from (
        select distinct 
            ID, Name, RMName, RName, DName, Section, CF, PPV,
            REPLACE(CONVERT (VARCHAR, ESD, 6), ' ', '-') ESD,
            REPLACE(CONVERT (VARCHAR, EED, 6), ' ', '-') EED,
            REPLACE(REPLACE(REPLACE(EJ, CHAR(10), ''), CHAR(13), ''), CHAR(9), '') as EJ,
            REPLACE(REPLACE(REPLACE(NJ,CHAR(10), ''), CHAR(13), ''), CHAR(9), '') as NJ,
            NAF,
            L4MAF,
            REPLACE(REPLACE(REPLACE(L4MJ,CHAR(10), ''), CHAR(13), ''), CHAR(9), '') as L4MJ,
            MLF,
            PL,
            PN,
            EMSFL,
            PV,
            FName,
            FLevel,
            SC,
            PID,
            PFID
        from 
            dbo.DFD def (nolock),
            dbo.DForm form (nolock),
            dbo.DExcp exc (nolock)
        where 
            exc.DPID = def.DFDID
            and def.DFID = form.DFID
            and NAF = 1
            and L4MAF = 1
            and RMName is not null
            and EED >= GETDATE()
            and EED <> '2050-01-01 00:00:00.000') as A
group by 
     Name, RMName, RName, DName, Section, CF, 
     PPV, ESD, EED, EJ, NJ, NAF, L4MAF, L4MJ, 
     MLF, PL, PN, EMSFL, PV, FName, FLevel, 
     SC, PID, PFID

虽然你的问题有些不清楚。我会根据你的要求给你举个例子

获取Id=最大Id的所有行

SELECT
   b.*
FROM
   (SELECT MAX(Id) AS [MaxId] From MyTable) a INNER JOIN
   MyTable b ON a.MaxId = b.Id
还有其他方法可以做到这一点,但这将为您提供表中Id等于表中最大Id的所有行。如果我误解了你的意思,我可以定制一个更具体的例子


-Ben

只是想澄清一下,您是否试图获取ID为最大值的子查询中该行的所有列的值?我不能是什么意思?。你有错误吗?错误的结果?是的,我需要显示所有行中返回的所有值,并且根据结果集,我需要显示一个最大ID,因为所有其他字段在所有其他行中可能具有相同的数据。我无法获得正在返回的结果集的最大ID,记录数相同或没有给我列ID的最大值。您更有可能获得帮助如果您将查询简化为演示问题的最小示例,并给出实际结果和预期结果。