Sql server SQL Server:使用“子选择”选择最大值
我试图在SQL Server中获取另一个select的结果集的最大值,但无法。我不确定我在SQL Server中做了什么错误。任何帮助都会很好 这是我的SQL: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,
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的最大值。您更有可能获得帮助如果您将查询简化为演示问题的最小示例,并给出实际结果和预期结果。