SQL Server 2008 получить максимальные данные

у меня два стола

Имя первой таблицы abc :

  c_id  c_name
   C11    C1
   C12    C2

и имя второй таблицы xyz

   c_id     m_id    amt
   C11      M11    20000
   C12      M12    50000
   C11      M13    80000
   C12      M14    10000

Я хочу выбрать max(amt) с таблицей соединений, и результат:

  c_id    c_name   m_id    amt
  CN11      C1     M13    80000
  CN12      C2     M12    50000

Я использую SQL Server 2008


person user3834541    schedule 25.07.2014    source источник


Ответы (1)


Попробуйте так

SELECT S.c_id,S.c_name,T.m_id,S.M_amt
FROM
  (
   SELECT T2.c_id,T2.c_name,T1.M_amt
   FROM 
      (
        SELECT c_id,Max(amt) As M_amt From xyz Group By c_id
      ) T1 Inner Join abc T2 ON T2.c_id = T1.c_id 
           Inner Join xyz T3 ON T3.amt = T1.M_amt 
  ) S JOIN xyz T ON S.c_id = T.C_id AND S.M_amt = T.amt

Демонстрация скрипта


Вывод будет таким:

C_ID    C_NAME  M_ID    M_AMT
C12     C2      M12     50000
C11     C1      M13     80000
person Vignesh Kumar A    schedule 25.07.2014