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

Откуда:
Сообщений: 163
select
b.analit as anb
, b.namean as nameb
, sm.*
from mbanalit as b
outer apply (
select top 1
srv.Analit as sa, srv.Date6 as dt, srv.NameAn as NameServ
from mbanalit as srv
where
b.Analit = srv.PmB
order by srv.Date6 desc, srv.analit desc
) as sm
10 май 17, 15:57    [20469714]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли короче? Например через окна  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
serg0265
Можно ли короче?
Можно "as" не писать. И алиас srv черезчур длинный.
10 май 17, 16:11    [20469752]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли короче? Например через окна  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
SELECT TOP(1) WITH TIES anb=b.analit,nameb=b.namean,sa=s.Analit,dt=s.Date6,NameServ=s.NameAn
FROM mbanalit b LEFT JOIN mbanalit s ON b.Analit=srv.PmB
ORDER BY ROW_NUMBER()OVER(PARTITION BY b.Analit ORDER BY s.Date6 DESC,s.analit DESC);
Это короче?
10 май 17, 16:16    [20469773]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли короче? Например через окна  [new]
serg0265
Member

Откуда:
Сообщений: 163
iap,

Спасибо
10 май 17, 16:49    [20469912]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли короче? Например через окна  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 345
В варианте iap потеряются дубликаты по b.Analit, если таковые есть.
10 май 17, 22:53    [20470784]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли короче? Например через окна  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Balbidon
В варианте iap потеряются дубликаты по b.Analit, если таковые есть.
Заменить ROW_NUMBER() на RANK()
11 май 17, 10:05    [20471361]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли короче? Например через окна  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Однако, главная ошибка - оценивать качество запроса по количеству символов в его тексте.
serg0265, вы бы планы запросов лучше смотрели.
11 май 17, 10:30    [20471470]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить