Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Актуальные курсы валют одним SELECT / 5 сообщений из 5, страница 1 из 1
20.01.2019, 12:43
    #39762006
KonstMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Актуальные курсы валют одним SELECT
Необходимо получить (используя один SELECT) актуальные курсы всех валют, записи по которым присутствуют в таблице CurrencyRates. Задали на собеседовании... Ответить, соответственно, не смог!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
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)
...
Рейтинг: 0 / 0
20.01.2019, 13:53
    #39762028
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Актуальные курсы валют одним SELECT
KonstMV,

Where RateDate <= getdate() + получение ТОПовой записи по каждой валюте любым из предложенных по ссылке методом.....
...
Рейтинг: 0 / 0
20.01.2019, 13:57
    #39762034
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Актуальные курсы валют одним SELECT
KonstMVНеобходимо получить (используя один SELECT) актуальные курсы всех валют, записи по которым присутствуют в таблице CurrencyRates.Например:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
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
...
Рейтинг: 0 / 0
20.01.2019, 15:02
    #39762061
KonstMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Актуальные курсы валют одним SELECT
alexeyvg,

Без вложенных запросов... Один SELECT
...
Рейтинг: 0 / 0
20.01.2019, 15:18
    #39762070
KonstMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Актуальные курсы валют одним SELECT
Щукина Анна,

Спасибо!!!
Вопрос закрыт!

select top 1 with ties *
from CurrencyRates
order by row_number()
over(partition by Currency_ID
order by RateDate desc)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Актуальные курсы валют одним SELECT / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]