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

Откуда:
Сообщений: 1081
необходимо получить из installations параметры assy на ближайшую дату
как-то красивше возможно?
insert installations (date,assy)
select '20170101',1
union all
select '20170202',2

insert params (date,param1)
select '20170105',100
union all
select '20170203',200

select p.*,i.* 
from params p 
cross apply 
	(select top(1) * 
		from installations i 
			where i.date<=p.date order by date desc) i
25 июн 17, 15:40    [20588875]     Ответить | Цитировать Сообщить модератору
 Re: получить бижайшую дату (из прошлого)  [new]
Добрый Э - Эх
Guest
waszkiewicz,

Критерии красоты озвучь.
25 июн 17, 15:48    [20588885]     Ответить | Цитировать Сообщить модератору
 Re: получить бижайшую дату (из прошлого)  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1081
Добрый Э - Эх,
таблицы могут быть очень большими. Хотел join, но params может не быть записи с датой из installations
25 июн 17, 15:53    [20588890]     Ответить | Цитировать Сообщить модератору
 Re: получить бижайшую дату (из прошлого)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
waszkiewicz
Хотел join, но params может не быть записи с датой из installations
Можно join с подзапросом, если в installations date уникально.
Но по мне красивее с cross apply
25 июн 17, 16:37    [20588917]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить