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

Откуда: РБ
Сообщений: 950
есть таблица :
id id_cma price quantity
14 5 10 5
15 5 10 15
16 5 10 30
17 6 20 25
18 6 20 60
19 6 25 100


как получить
id_cma price quantity
5 10 30
6 20 60
6 25 100


опираться на то, что max(id) по группе id_cma, price содержит последние данные о количестве

+ данные

declare @cma table
(
	id			int           not null primary key clustered,
	id_cma		int			  not null,
	price		decimal(12,2) not null,
	quantity	decimal(11,4) not null
)
insert into	@cma
select 14, 5, 10, 5		union all
select 15, 5, 10, 15	union all
select 16, 5, 10, 30	union all
select 17, 6, 20, 25	union all
select 18, 6, 20, 60	union all
select 19, 6, 25, 100

select *
from @cma as cma

5 май 12, 13:45    [12513423]     Ответить | Цитировать Сообщить модератору
 Re: помогите плз составить запрос на выборку данных  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
так норм?
--
declare @max_id table
(
	id int not null primary key clustered
)
insert into	@max_id
select MAX(id)
from @cma as cma
group by cma.id_cma, cma.price
-- select
select cma.id_cma, cma.price, cma.quantity
from @max_id as max_id
inner join @cma as cma
on max_id.id = cma.id
--
5 май 12, 13:58    [12513510]     Ответить | Цитировать Сообщить модератору
 Re: помогите плз составить запрос на выборку данных  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
koJIo6ok, можно в один приём

select c.id, c.id_cma, c.price, c.quantity
from @cma c
join (select id_cma, price, MAX(id) id from @cma cc group by id_cma, price) ccc on ccc.id = c.id;
5 май 12, 14:01    [12513526]     Ответить | Цитировать Сообщить модератору
 Re: помогите плз составить запрос на выборку данных  [new]
iljy
Member

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

кучу раз было - выбор первого-последнего значения из группы. TOP 1 WITH TIES + ORDER BY ROW_NUMBER() OVER(PARTITION BY...)
5 май 12, 14:23    [12513699]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить