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

Откуда:
Сообщений: 166
MSSQL 2008R2

CREATE TABLE [dbo].[Exchange] (
  [ParentCode] int NOT NULL,
  [code] int NOT NULL,
  [Value] money NOT NULL
  )
  ON [PRIMARY]
  GO
   
  INSERT INTO dbo.Exchange
  (ParentCode,Code,[Value])
  VALUES
  (1000,1,100),
  (1000,2,110),
  (1000,3,120),
  (1000,4,130),
  (2000,11,20),
  (2000,22,40),
  (2000,31,50),
  (2000,41,80),
  (3000,1,10),
  (3000,2,20),
  (3000,3,40),
  (3000,4,100)
   ...


Нужно по каждому ParentCode Найти Code с MAX(Value) и оставить только эту строку.
31 июл 12, 17:28    [12942502]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
Baddy
Member

Откуда: Харьков
Сообщений: 174
zanderman,

а если у ParentCode два разных Code с одинаковыми MAX(Value), какую строку оставить?
31 июл 12, 17:32    [12942523]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
zanderman,

пронумеровать по убыванию, оставить только первые номера.
31 июл 12, 17:32    [12942530]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
zanderman,

  delete    from a
  from      ( select    row_number() over ( partition by ParentCode order by value desc ) as rn
              from      #Exchange
            ) a
  where     rn > 1
31 июл 12, 17:33    [12942536]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
zanderman
Member

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

такой вариант невозможен
31 июл 12, 17:43    [12942594]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
zanderman
Member

Откуда:
Сообщений: 166
Alexandr Kr.
zanderman,

  delete    from a
  from      ( select    row_number() over ( partition by ParentCode order by value desc ) as rn
              from      #Exchange
            ) a
  where     rn > 1


Спасибо.
А я просто делил на секции без упорядочения. И дальше застревал.
31 июл 12, 17:49    [12942637]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить