2013-05-30 2 views
2

SQL Server에서 다른 선택의 결과 집합의 최대 값을 가져 오려고했지만 시도 할 수 없습니다. SQL Server에서 내가 뭘 잘못하고 있는지 잘 모르겠습니다. 어떤 도움이라도 좋을 것입니다. 귀하의 질문에 다소 불분명하지만SQL Server : 하위 선택으로 최대 선택

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 
+0

그냥, 당신은 누구의 ID 최대 값이 하위 쿼리에서 행의 모든 ​​열에 대한 값을 얻기 위해 시도하는 명확히? – Morfie

+0

"나는 할 수 없다"는 것은 무엇을 의미합니까?. 오류가 발생합니까?, 잘못된 결과가 나옵니까? – Lamak

+0

예, 모든 행의 모든 ​​반환 값을 표시해야하며 결과 집합을 기반으로 나머지 모든 필드가 다른 모든 행에서 동일한 데이터를 가질 수 있으므로 하나의 최대 ID를 표시해야합니다. –

답변

0

:

내 SQL입니다. 나는 당신이 최대 이드 = ID가 모든 행을 가져

을 요구하고 무슨 생각을 기반으로 당신에게 예를 들어주지

SELECT 
    b.* 
FROM 
    (SELECT MAX(Id) AS [MaxId] From MyTable) a INNER JOIN 
    MyTable b ON a.MaxId = b.Id 

다른이 작업을 수행 할 수있는 방법 그러나 이것은 당신에게 줄 것이다있다 ID가 테이블의 최대 ID와 같은 테이블의 모든 행 나는 당신이 얻고있는 것을 오해 한 경우 좀 더 구체적인 예를 만들 수 있습니다.

-Ben