powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка
20 сообщений из 20, страница 1 из 1
Выборка
    #39709092
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ,
MS SQL 2000
Не приходит в голову как мене выбрать из таблицы по 3 записи каждого наименования товара с ценой закупки упорядоченных по дате:
ID_Item, Data, Price

1 21.09.2018 1000
2 11.09.2018 1100
2 13.09.2018 1200
2 15.09.2018 1300
1 16.09.2018 1400
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700
1 17.08.2018 1800
2 05.08.2018 1900
3 07.09.2018 2000
2 09.08.2018 2100
3 15.07.2018 2200
3 18.08.2018 2300
3 03.09.2018 2400
Результат:
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700
2 05.08.2018 1900
2 09.08.2018 2100
2 11.09.2018 1100
3 03.09.2018 2400
3 07.09.2018 2000
3 15.07.2018 2200
Всем спасибо
...
Рейтинг: 0 / 0
Выборка
    #39709101
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
SET DATEFORMAT DMY;
DECLARE @a TABLE (ID_Item int, Data date, Price int)
INSERT INTO @a VALUES
(1, '21-09-2018', 1000),
(2, '11-09-2018', 1100), 
(2, '13-09-2018', 1200),
(2, '15-09-2018', 1300),
(1, '16-09-2018', 1400),
(1, '12-09-2018', 1500),
(1, '14-08-2018', 1600),
(1, '16-09-2018', 1700),
(1, '17-08-2018', 1800),
(2, '05-08-2018', 1900),
(3, '07-09-2018', 2000),
(2, '09-08-2018', 2100),
(3, '15-07-2018', 2200),
(3, '18-08-2018', 2300),
(3, '03-09-2018', 2400)


SELECT  
	ID_Item,
	Data,
	Price
FROM 
(
	SELECT 
		ID_Item,
		Data,
		Price,
		[r] = (SELECT count (id_Item) FROM @a b WHERE b.Data < a.Data AND b.id_Item = a.id_Item)
	FROM @a a
) as c
WHERE 
	r < 3
ORDER BY 
	id_Item,
	Data
...
Рейтинг: 0 / 0
Выборка
    #39709103
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiНарод,
MS SQL 2000
Не приходит в голову как мене выбрать из таблицы по 3 записи каждого наименования товара с ценой закупки упорядоченных по дате:
ID_Item, Data, Price

1 21.09.2018 1000
2 11.09.2018 1100
2 13.09.2018 1200
2 15.09.2018 1300
1 16.09.2018 1400
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700
1 17.08.2018 1800
2 05.08.2018 1900
3 07.09.2018 2000
2 09.08.2018 2100
3 15.07.2018 2200
3 18.08.2018 2300
3 03.09.2018 2400


Результат:
1 14.08.2018 1600
1 12.09.2018 1500
1 16.09.2018 1700
2 05.08.2018 1900
2 09.08.2018 2100
2 11.09.2018 1100
3 15.07.2018 2200
3 03.09.2018 2400
3 07.09.2018 2000
Всем спасибо
...
Рейтинг: 0 / 0
Выборка
    #39709104
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii,

Код: sql
1.
2.
3.
Select top 1 with ties * 
.....
Order by (row_number() over (partitoin by товар Order by дата desc) - 1)/3
...
Рейтинг: 0 / 0
Выборка
    #39709110
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopellyValerii,

Код: sql
1.
2.
3.
Select top 1 with ties * 
.....
Order by (row_number() over (partitoin by товар Order by дата desc) - 1)/3


оба на 2к не работают
...
Рейтинг: 0 / 0
Выборка
    #39709117
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii.....упорядоченных по дате:

ID_Item, Data, Price
1 21.09.2018 1000
1 16.09.2018 1400
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700
1 17.08.2018 1800
Результат:
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700


Не вижу упорядочивания по дате в контрольном примере/результате.
...
Рейтинг: 0 / 0
Выборка
    #39709122
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Супер.. спасибо.
...
Рейтинг: 0 / 0
Выборка
    #39709130
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Valerii.....упорядоченных по дате:

ID_Item, Data, Price
1 21.09.2018 1000
1 16.09.2018 1400
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700
1 17.08.2018 1800
Результат:
1 12.09.2018 1500
1 14.08.2018 1600
1 16.09.2018 1700

Не вижу упорядочивания по дате в контрольном примере/результате.
не вижу умения читать тз
...
Рейтинг: 0 / 0
Выборка
    #39709147
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK982183пропущено...

Не вижу упорядочивания по дате в контрольном примере/результате.
не вижу умения читать тз

опечатака
...
Рейтинг: 0 / 0
Выборка
    #39709151
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKне вижу умения читать тз
Ну так хотя бы указал по возрастанию и ли убыванию.
...
Рейтинг: 0 / 0
Выборка
    #39709154
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183TaPaKне вижу умения читать тз
Ну так хотя бы указал по возрастанию и ли убыванию.
только для вас это важно
...
Рейтинг: 0 / 0
Выборка
    #39709161
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKValerii,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
SET DATEFORMAT DMY;
DECLARE @a TABLE (ID_Item int, Data date, Price int)
INSERT INTO @a VALUES
(1, '21-09-2018', 1000),
(2, '11-09-2018', 1100), 
(2, '13-09-2018', 1200),
(2, '15-09-2018', 1300),
(1, '16-09-2018', 1400),
(1, '12-09-2018', 1500),
(1, '14-08-2018', 1600),
(1, '16-09-2018', 1700),
(1, '17-08-2018', 1800),
(2, '05-08-2018', 1900),
(3, '07-09-2018', 2000),
(2, '09-08-2018', 2100),
(3, '15-07-2018', 2200),
(3, '18-08-2018', 2300),
(3, '03-09-2018', 2400)


SELECT  
	ID_Item,
	Data,
	Price
FROM 
(
	SELECT 
		ID_Item,
		Data,
		Price,
		[r] = (SELECT count (id_Item) FROM @a b WHERE b.Data < a.Data AND b.id_Item = a.id_Item)
	FROM @a a
) as c
WHERE 
	r < 3
ORDER BY 
	id_Item,
	Data



Садись, неуд.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
-- Лучше иметь уникальный идентификатор строки...
SELECT  
	ID_Item,
	Data,
	Price
FROM @a as t
  where data in ( select top(3) Data from @a as a where a.id_Item = t.id_Item order by Data asc )
ORDER BY id_Item, Data;
...
Рейтинг: 0 / 0
Выборка
    #39709186
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

Line 6: Incorrect syntax near '('
...
Рейтинг: 0 / 0
Выборка
    #39709188
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii,

TOP 3
...
Рейтинг: 0 / 0
Выборка
    #39709189
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii,

Но первый пример лучше, так как в нем ожно параметризировать количество записей каждого товара. В вашем случае насколько я нарывался на проблемы я не могу параметризировать выражение ТОР @InvoiceRecord
...
Рейтинг: 0 / 0
Выборка
    #39709190
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiValerii,

Но первый пример лучше, так как в нем ожно параметризировать количество записей каждого товара. В вашем случае насколько я нарывался на проблемы я не могу параметризировать выражение ТОР @InvoiceRecord
не помню как в 2000 но вообще
TOP (SELECT @InvoiceRecord)
...
Рейтинг: 0 / 0
Выборка
    #39709395
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKValeriiValerii,

Но первый пример лучше, так как в нем ожно параметризировать количество записей каждого товара. В вашем случае насколько я нарывался на проблемы я не могу параметризировать выражение ТОР @InvoiceRecord
не помню как в 2000 но вообще
TOP (SELECT @InvoiceRecord)Скобки в TOP появились в SQL2005
...
Рейтинг: 0 / 0
Выборка
    #39709400
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKKopellyValerii,

Код: sql
1.
2.
3.
Select top 1 with ties * 
.....
Order by (row_number() over (partitoin by товар Order by дата desc) - 1)/3


оба на 2к не работают

Это будет работать на 2000?
Код: sql
1.
2.
3.
4.
DECLARE @a TABLE (ID_Item int, Data date, Price int)
INSERT INTO @a VALUES
(1, '21-09-2018', 1000),
(2, '11-09-2018', 1100),
...
Рейтинг: 0 / 0
Выборка
    #39709401
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kTaPaKпропущено...

оба на 2к не работают

Это будет работать на 2000?
Код: sql
1.
2.
3.
4.
DECLARE @a TABLE (ID_Item int, Data date, Price int)
INSERT INTO @a VALUES
(1, '21-09-2018', 1000),
(2, '11-09-2018', 1100),


какой щепетильный малый, таблица у страдальца своя на кой чёрт ему моя?
...
Рейтинг: 0 / 0
Выборка
    #39709402
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kTaPaKпропущено...

оба на 2к не работают

Это будет работать на 2000?
Код: sql
1.
2.
3.
4.
DECLARE @a TABLE (ID_Item int, Data date, Price int)
INSERT INTO @a VALUES
(1, '21-09-2018', 1000),
(2, '11-09-2018', 1100),

Нет. Но это всего лишь создание табличной переменной с заполнением.
Что мешает вместо VALUES(),() написать SELECT UNION ALL SELECT ?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]