Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
KonstMV Member Откуда: Сообщений: 21 |
Необходимо получить (используя один SELECT) актуальные курсы всех валют, записи по которым присутствуют в таблице CurrencyRates. Задали на собеседовании... Ответить, соответственно, не смог!CREATE TABLE Currency (ID int IDENTITY PRIMARY KEY, Name nvarchar(10) NOT NULL) GO CREATE TABLE CurrencyRates (ID int IDENTITY PRIMARY KEY, Currency_ID int NOT NULL, RateDate datetime, Rate decimal(11,2)) GO INSERT INTO Currency (Name) VALUES ('Рубль') GO INSERT INTO Currency (Name) VALUES ('Доллар') GO INSERT INTO Currency (Name) VALUES ('Евро') GO INSERT INTO CurrencyRates (Currency_ID, RateDate, Rate) VALUES (1, '01.01.2019', 1) GO INSERT INTO CurrencyRates (Currency_ID, RateDate, Rate) VALUES (2, '01.01.2019', 61.00) GO INSERT INTO CurrencyRates (Currency_ID, RateDate, Rate) VALUES (2, '02.01.2019', 62.01) Сообщение было отредактировано: 20 янв 19, 13:24 |
20 янв 19, 12:43 [21789575] Ответить | Цитировать Сообщить модератору |
Щукина Анна Member Откуда: Сообщений: 1512 |
KonstMV, Where RateDate <= getdate() + получение ТОПовой записи по каждой валюте любым из предложенных по ссылке методом..... |
20 янв 19, 13:53 [21789614] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
select * from Currency c outer apply ( select top 1 * from CurrencyRates r where r.Currency_ID = c.ID order by r.RateDate desc ) r where r.ID is not null |
||
20 янв 19, 13:57 [21789621] Ответить | Цитировать Сообщить модератору |
KonstMV Member Откуда: Сообщений: 21 |
alexeyvg, Без вложенных запросов... Один SELECT |
20 янв 19, 15:02 [21789661] Ответить | Цитировать Сообщить модератору |
KonstMV Member Откуда: Сообщений: 21 |
Щукина Анна, Спасибо!!! Вопрос закрыт! select top 1 with ties * from CurrencyRates order by row_number() over(partition by Currency_ID order by RateDate desc) |
20 янв 19, 15:18 [21789670] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |