Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужно получить результат но не получется  [new]
FilEd
Member

Откуда:
Сообщений: 47
Есть 2 таблицы

Table1
FID int
NAME varchar(50)

Table2
RecordID int
FID int
DT datetime

Мне надо получит значения таблицы 1 с данными из таблицы 2 в которых DT максимальное, чтото вроде этого:

SELECT Table1.FID, Table1.Name, R.DT
From Table1 left outer join
(
Select top 1 Table2.DT
From Table2
Where (Table2.FID=Table1.FID)
Order by Table2.DT desc
) as R

но почемуто ругается на Where (Table2.FID=Table1.FID)
10 сен 09, 12:16    [7641207]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
Еще бы. Оно и не так ругаться будет, если синтаксис взяться выдумывать.
10 сен 09, 12:17    [7641216]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
SELECT Table1.FID
      ,Table1.Name
      ,(Select max(Table2.DT)
          From Table2
         Where Table2.FID=Table1.FID
        ) as DT
 From Table1
?
10 сен 09, 12:19    [7641233]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
FilEd
Member

Откуда:
Сообщений: 47
Паганель,

Спасибо. но я очень извиняюсь. дело в том что в таблице2 допустим есть еще некое текстовое поле Msg. так мне надо еще и его вывести. Как тогда быть?
10 сен 09, 12:24    [7641277]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2549
FilEd,

версия сервера какая?
10 сен 09, 12:25    [7641282]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
FilEd
Member

Откуда:
Сообщений: 47
PaulYoung,

надо чтобы и в 2000 и 2005 работало
10 сен 09, 12:31    [7641318]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Для одного и того же Table2.FID могут ли быть две записи с одинаковыми значениями Table2.DT
?
10 сен 09, 12:33    [7641332]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
FilEd
Member

Откуда:
Сообщений: 47
Паганель,

не могут
10 сен 09, 12:35    [7641346]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
SELECT Table1.FID, Table1.Name, T2.DT, T2.Msg
 From Table1
 Left Join (select T2.FID, T2.DT, T2.Msg
              from Table2 as T2
             where not exists(select *
                                from Table2 as T3
                               where T3.FID = T2.FID
                                 and T3.DT > T2.DT
                              )
            ) as T2 on T2.FID = Table1.FID
10 сен 09, 12:39    [7641370]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
FilEd
Member

Откуда:
Сообщений: 47
Паганель,

интересная мысль. сейчас попробую
10 сен 09, 12:42    [7641387]     Ответить | Цитировать Сообщить модератору
 Re: Нужно получить результат но не получется  [new]
FilEd
Member

Откуда:
Сообщений: 47
Паганель,

БРАВО МАЭСТРО ПАГАНЕЛЬ!
10 сен 09, 13:26    [7641755]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить