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

Откуда:
Сообщений: 183
Ребята есть две таблицы

Таблица А
[ ClientID , Money]
1 ; 15€
2 ; 896€

И таблица B
[ ClientID , Date ]
1 ; 2009-08-01
1 ; 2009-08-02
1 ; 2009-07-01
2 ; 2009-06-01
2 ; 2009-07-29

Нужно получить следующий результат, т.е максимальную дату из таблицы B

[ ClientID ,Money, MAX(Date) ]
1 ; 15€ ; 2009-08-02
1 ; 896€ ; 2009-07-29

Как будет выглядеть такой запрос?
29 авг 09, 13:42    [7593399]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
unkis
Member

Откуда:
Сообщений: 183
Ошибся результат должен быть такой

Нужно получить следующий результат, т.е максимальную дату из таблицы B

[ ClientID ,Money, MAX(Date) ]
1 ; 15€ ; 2009-08-02
2 ; 896€ ; 2009-07-29

Как будет выглядеть такой запрос?
29 авг 09, 13:43    [7593400]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
max + group by + join
29 авг 09, 13:57    [7593413]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
san_d
Member

Откуда: Киев
Сообщений: 60
select
 [ClientId],
 [Money],
 (select MAX([Date]) from #b where #b.ClientId= #a.ClientId) MaxDate
from
 #a
29 авг 09, 13:59    [7593415]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
unkis
Member

Откуда:
Сообщений: 183
Гавриленко Сергей Алексеевич,

А могли бы вы по конкретней
29 авг 09, 14:00    [7593417]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
san_d
select
 [ClientId],
 [Money],
 (select MAX([Date]) from #b where #b.ClientId= #a.ClientId) MaxDate
from
 #a
Что же вы плохому то учите? :) Подзапросами лучше не баловаться, если можно по другому
select
  A.ClientID,
  A.[Money],
  max(B.[Date]) as MaxDate
from A
  left join B on A.ClientID = B.ClientID
group by
  A.ClientID,
  A.[Money]
29 авг 09, 14:27    [7593452]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
san_d
Member

Откуда: Киев
Сообщений: 60
[quot Senya_LЧто же вы плохому то учите? :) Подзапросами лучше не баловаться, если можно по другому
[/quot]
ндя? Ну зато у автора есть терь два варианта, пусть тестирует:))
29 авг 09, 14:47    [7593478]     Ответить | Цитировать Сообщить модератору
 Re: Помогите составить запрос  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
san_d
Senya_L
Что же вы плохому то учите? :) Подзапросами лучше не баловаться, если можно по другому

ндя? Ну зато у автора есть терь два варианта, пусть тестирует:))
С такими вопросами никто тестированием особо заниматься не будет. Такими заданиями хвосты закрывают по летней сессии.
29 авг 09, 16:05    [7593595]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить