Имя: Пароль:
1C
1С v8
помогите с запросом. Как выбрать Первые 2 Для каждой номенклатуры?
0 dima_xyan
 
21.10.15
11:28
Есть Таблица:

номенклатура1
номенклатура1
номенклатура1
номенклатура1
номенклатура2
номенклатура2
номенклатура2
номенклатура2
номенклатура2
номенклатура2
номенклатура2
номенклатура3
номенклатура3
номенклатура3

Как выбрать Первые 2 Для каждой номенклатуры?
1 cw014
 
21.10.15
11:30
ВЫБРАТЬ поле ИЗ ТАБЛИЦА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ поле ИЗ ТАБЛИЦА
2 el-gamberro
 
21.10.15
11:31
сделай кросс джин номенклатура с таблицей счетчиком, потом наложи отбор на счетчики
3 Ненавижу 1С
 
гуру
21.10.15
11:31
ВЫБРАТЬ Номенклатура
ИЗ Таблица
СГРУППИРОВАТЬ ПО Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Номенклатура
ИЗ Таблица
СГРУППИРОВАТЬ ПО Номенклатура
ИМЕЮЩИЕ КОЛИЧЕСТВО(*)>1
УПОРЯДОЧИТЬ ПО Номенклатура
4 aleks_default
 
21.10.15
11:31
Сгруппировать по номенклатуре, пронумеровать внутри группировки, и отобрать по номеру. И все это в запросе.
5 Fragster
 
гуру
21.10.15
11:32
(0) тестовое задание на работе?
6 aleks_default
 
21.10.15
11:32
(3) это будут НЕ ПЕРВЫЕ 2
7 dima_xyan
 
21.10.15
11:33
(1),(3) А если первые 10, 20, 50?
8 aleks_default
 
21.10.15
11:34
(7) у тебя постановка задачи не верная
9 ibreiter
 
21.10.15
11:34
(0) По какому признаку они первые?
10 Ненавижу 1С
 
гуру
21.10.15
11:34
(6) почему?
11 cw014
 
21.10.15
11:34
(7)ВЫБРАТЬ Номенклатура
ИЗ Таблица
СГРУППИРОВАТЬ ПО Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Номенклатура
ИЗ Таблица
СГРУППИРОВАТЬ ПО Номенклатура
... (20 раз)
ВЫБРАТЬ Номенклатура
ИЗ Таблица
СГРУППИРОВАТЬ ПО Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Номенклатура
ИЗ Таблица
СГРУППИРОВАТЬ ПО Номенклатура
12 Timon1405
 
21.10.15
11:41
ВЫБРАТЬ ПЕРВЫЕ 10
    Номенклатура.Ссылка
ПОМЕСТИТЬ ВТ_Ном
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    НЕ Номенклатура.ЭтоГруппа
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    1 КАК Цифра
ПОМЕСТИТЬ ТаблицаЦифр

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    1 + ТаблицаЦифр.Цифра + ТаблицаЦифр1.Цифра * 10 + ТаблицаЦифр2.Цифра * 100 + ТаблицаЦифр3.Цифра * 1000 КАК Число
ПОМЕСТИТЬ ВТ_Числа
ИЗ
    ТаблицаЦифр КАК ТаблицаЦифр,
    ТаблицаЦифр КАК ТаблицаЦифр1,
    ТаблицаЦифр КАК ТаблицаЦифр2,
    ТаблицаЦифр КАК ТаблицаЦифр3
ГДЕ
    1 + ТаблицаЦифр.Цифра + ТаблицаЦифр1.Цифра * 10 + ТаблицаЦифр2.Цифра * 100 + ТаблицаЦифр3.Цифра * 1000 <= &СколькоВешатьВГраммах
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ТаблицаЦифр
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Ном.Ссылка КАК Ссылка
ИЗ
    ВТ_Ном КАК ВТ_Ном,
    ВТ_Числа КАК ВТ_Числа

УПОРЯДОЧИТЬ ПО
    Ссылка
13 aleks_default
 
21.10.15
11:43
(10) Я полагаю, что там не только номенклатура в таблице, а есть еще и другие поля. И в них то все и дело. Ибо нет смысла отбирать первые 2 номенклатуры ПОСЛЕ группировки.
Т.е. (8)
14 Ненавижу 1С
 
гуру
21.10.15
11:44
(13) напридумывать можно много чего
15 hhhh
 
21.10.15
11:47
(13) Но ведь всегда был отчет пять самых продаваемых товаров?? Например выводить по 5 товаров в каждой группе. Почему неверная постановка?
16 aleks_default
 
21.10.15
11:49
(15) Как понять тогда "Как выбрать Первые 2 Для КАЖДОЙ номенклатуры?"
17 cw014
 
21.10.15
11:51
(15) Потому что нету никаких условий. Просто первые 2 и все
18 cw014
 
21.10.15
11:51
(15) Как поняли - так и помогли
19 aleks_default
 
21.10.15
11:54
(18)Ну да, пусть ТС в нюансах разбирается.
20 dima_xyan
 
21.10.15
12:10
(4) Самый правильный способ. Его и реализовываю.
21 DailyLookingOnA Sunse
 
21.10.15
12:30
бгг
22 RomanYS
 
21.10.15
12:41
ВЫБРАТЬ
    ТЧ.Ссылка,
    ТЧ.Номенклатура,
    ТЧ.Количество
ПОМЕСТИТЬ ВТ
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК ТЧ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.Ссылка,
    ВТ.Номенклатура,
    ВТ.Количество
ИЗ
    ВТ КАК ВТ
ГДЕ
    ВТ.Ссылка В
            (ВЫБРАТЬ ПЕРВЫЕ 5
                ВТ2.Ссылка
            ИЗ
                ВТ КАК ВТ2
            ГДЕ
                ВТ2.Номенклатура = ВТ.Номенклатура
            УПОРЯДОЧИТЬ ПО
                ВТ2.Количество УБЫВ)