powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с простой задачкой плзззз!
5 сообщений из 5, страница 1 из 1
Помогите с простой задачкой плзззз!
    #39683128
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Прошу помощи в решении, казалось бы, простой задачи.

Есть две таблицы:
Продажи (Дата продажи, Сумма)
Курс (Дата курса, Курс)

Нужно их заджоинить так, что бы каждой дате продажи соответствовал свой курс.

Проблема в том, что Курс не всегда установлен в дату продажи (могут брать курс который был установлен вчера или позавчера).

Мой запрос работает не правильно.
Помогите плзз.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select
cast([Продажа].[Дата продажи] as date) as 'Дата продажи',
[Продажа].[Сумма],
[Курс].[Курс]

from [Продажа]

left join [Курс] on cast([Продажа].[Дата продажи] as date) = (SELECT max(cast([Курс].[Дата курса] as date)) as MaxDate 
                                                                                            FROM [Курс]
                                                                                            WHERE cast([Продажа].[Дата продажи] as date) >= cast([Курс].[Дата курса] as date) 
                                                                                            )
...
Рейтинг: 0 / 0
Помогите с простой задачкой плзззз!
    #39683134
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД: Microsoft SQL Server 2016 (SP1) - 13.0.4001.0
...
Рейтинг: 0 / 0
Помогите с простой задачкой плзззз!
    #39683135
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallich, помню в молодости тоже решал эту задачу :)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
cast([Продажа].[Дата продажи] as date) as 'Дата продажи',
[Продажа].[Сумма],
[LastKurs].[Курс]
from [Продажа]
outer apply 
(
select top 1 [Курс].[Курс] 
    from [Курс] 
where cast([Курс].[Дата курса] as date)<=cast([Продажа].[Дата продажи] as date)
order by [Курс].[Дата курса] desc
) LastKurs
...
Рейтинг: 0 / 0
Помогите с простой задачкой плзззз!
    #39683136
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select *
from Продажи п
outer apply (
   select top 1 *
from Курс к
where 
k.date <= п.date
order by 
k.date desc
) k



что делать с продажами без курса, разбирайтесь сами
...
Рейтинг: 0 / 0
Помогите с простой задачкой плзззз!
    #39683153
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шыфл и msLex Большое вам человеческое спасибо! :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с простой задачкой плзззз!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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