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

Откуда:
Сообщений: 3
Есть таблица

Create table PRODUCT_SHOP
(
prod_id Numeric(4),
shop_id Numeric(4),
date_s DATE,
quant Numeric(3),
summa FLOAT(53)
);


--1.По каждому магазину вывести последнюю покупку в каждом месяце. Если покупок несколько, то вывести товар с наибольшим ID.
--2.Вывести все продажи за январь. Если продажи за январь отсутствуют, то все продажи за февраль. (-)
28 июл 17, 10:24    [20681713]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
DavyJones,

собеседование? зарплату поделим?
28 июл 17, 10:31    [20681750]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Оконные функции погугли, и джойн.
28 июл 17, 10:41    [20681800]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
Добрый Э - Эх
Guest
DavyJones,

простая задача. там, в том числе, есть и бесподзапросные решения
28 июл 17, 10:46    [20681826]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
Добрый Э - Эх
Guest
Cammomile,

top 1 with ties + сортировка по row_number даже без джойнов справятся...
28 июл 17, 10:52    [20681850]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
DavyJones
Member

Откуда:
Сообщений: 3
Добрый Э - Эх,
Будь добрее,можно по подробнее?)
28 июл 17, 11:31    [20682061]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
iii2
Member

Откуда:
Сообщений: 202
DavyJones
Добрый Э - Эх,
Будь добрее,можно по подробнее?)

Ну он же уже всё сказал!
Create table #PRODUCT_SHOP
(
prod_id Numeric(4),
shop_id Numeric(4),
date_s DATE,
quant Numeric(3),
summa FLOAT(53)
);

Insert into #PRODUCT_SHOP
Values
(1, 1, '20170101', 1, 10.5),
(2, 1, '20170101', 11, 11.5),
(3, 1, '20170102', 12, 12.5),
(4, 1, '20170103', 1, 13.5),
(5, 1, '20170104', 11, 14.5),
(6, 1, '20170105', 12, 15.5),
(7, 1, '20170105', 1, 16.5),
(8, 1, '20170107', 11, 17.5),
(9, 2, '20170101', 1, 10.5),
(10, 2, '20170101', 11, 11.5),
(11, 3, '20170102', 12, 12.5),
(12, 3, '20170103', 1, 13.5),
(13, 1, '20170104', 11, 14.5),
(14, 1, '20170105', 12, 15.5),
(15, 1, '20170105', 1, 16.5),
(16, 10, '20170107', 11, 17.5)

Select top (1) with ties * 
From #PRODUCT_SHOP
Order by ROW_NUMBER() over (Partition by shop_id, month(date_s) order by date_s DESC, prod_id DESC) ASC

Drop table #PRODUCT_SHOP
28 июл 17, 12:53    [20682369]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36928
Смотрите, какой хитрый DavyJones.

Сообщение модератору:

Добрый день!
прошу Вас удалить тему,поскольку она уже не является акутальной и нужный ответ я получил
С уважением,
DavyJones

Сам помощь получил, а теперь "удалите тему". Щас, ага.

З.Ы. Будем считать это благодарностью ответившим.

Сообщение было отредактировано: 28 июл 17, 13:42
28 июл 17, 13:42    [20682618]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста,как решить задачи,не используя подзапросов  [new]
DavyJones
Member

Откуда:
Сообщений: 3
Ответившим большое спасибо,Добрый Эх и ill,реально выручили,причём оперативно.

Гавриленко Сергей,насчёт хитрого,это зря,дело в том ,что вопрос не актуален,но если кому-то придётся решать подобное - пожалуйста
Пускай висит хоть вечность ,мне не жалко))
28 июл 17, 14:14    [20682760]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить