powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Актуальные курсы валют одним SELECT
5 сообщений из 5, страница 1 из 1
Актуальные курсы валют одним SELECT
    #39762006
KonstMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо получить (используя один 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
Актуальные курсы валют одним SELECT
    #39762028
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KonstMV,

Where RateDate <= getdate() + получение ТОПовой записи по каждой валюте любым из предложенных по ссылке методом.....
...
Рейтинг: 0 / 0
Актуальные курсы валют одним SELECT
    #39762034
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Актуальные курсы валют одним SELECT
    #39762061
KonstMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

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

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

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


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