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

Откуда:
Сообщений: 2
Есть таблица прайс-листов с полями
[ID] ,[Storage] ,[Price_id] ,[Part_katnum] ,[Part_name] ,[Part_price] ,[Part_kol] ,[Part_manufacturer] ,[delivery_time]

Нужно получить некий сводный прайс-лист с максимальными ценами товаров. Для одного и того же товара с одинаковым [Part_katnum] у разных поставщиков [Price_id] могут быть разные наименования товара [Part_manufacturer].

Делаю следующий запрос:

SELECT * FROM (SELECT Part_katnum, max(Part_price) as Part_price FROM Price2 where Storage = '000000001' GROUP BY Part_katnum) as aaa
left Join Price2 as bbb
On aaa.Part_katnum=bbb.Part_katnum And aaa.Part_price=bbb.Part_price

Все отлично, только если у разных поставщиков одинаковый товар по одной и той же цене, то в результ попадают несколько строк с одинаковым товаром. Мне же нужно чтобы в результате запроса товар [Part_katnum] был уникальный с максимальной ценой, остальные поля нужно выводить, а какой это будет поставщик [Price_id] и остальные поля не имеет значения.
5 июл 13, 15:33    [14528363]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц. На выходе есть дублирующиеся строки.  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
select top(1) with ties *
from Price2
where Storage = '000000001' 
order by row_number()over(partition by Part_katnum order by Part_price desc)
5 июл 13, 15:40    [14528435]     Ответить | Цитировать Сообщить модератору
 Re: Соединение таблиц. На выходе есть дублирующиеся строки.  [new]
serkolod
Member

Откуда:
Сообщений: 2
Cygapb-007,

Огромное человеческое СПАСИБО!!! :)
5 июл 13, 15:46    [14528489]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить