Имя: Пароль:
1C
1С v8
В запросе соединить только первое найденное
0 Geroy
 
23.02.16
21:51
Есть пул номенклатуры и у каждой номенклатуры, есть несколько упаковок (Справочник упаковки)
Как соединить так чтобы 1 товар = 1 упаковка
даже если у 1 товара есть 2 упаковки


Было :
Товар1   - Упаковка Товар1 74566
Товар1   - Упаковка Товар1 84564

Стало:
Товар1   - Упаковка Товар1 74566

То есть вторую игнор
Товаров будет много
1 totparen
 
23.02.16
22:10
Первая таблица с группировкой по товару, агрегат максимум. Все это в виртуальную таблицу. Потом вторым запросом соединяем с исходной.
2 Geroy
 
23.02.16
22:19
(1) максимум оставит 1 запись?
3 эксвилл
 
23.02.16
22:57
(1) Второй запрос зачем?
4 Geroy
 
23.02.16
23:17
(3) пример?
5 Serginio1
 
23.02.16
23:19
6 Serginio1
 
23.02.16
23:21
7 Geroy
 
23.02.16
23:46
(5) (6) ничего похожего там нет
8 Geroy
 
23.02.16
23:47
(7) нужно выбрать из справочника упаковки
только разные товар и их упаковки, даже если у товара будет несколько упаковок
9 totparen
 
24.02.16
05:30
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    ВЗ.Товар,
|    МАКСИМУМ(ВЗ.Упаковка) КАК Упаковка
|ИЗ
|    (ВЫБРАТЬ
|        ""Товар1"" КАК Товар,
|        ""Упаковка_Товар1_74566"" КАК Упаковка
|    
|    ОБЪЕДИНИТЬ ВСЕ
|    
|    ВЫБРАТЬ
|        ""Товар1"",
|        ""Упаковка_Товар1_84564"") КАК ВЗ
|
|СГРУППИРОВАТЬ ПО
|    ВЗ.Товар";
РезультатЗапроса = Запрос.Выполнить();
10 Starhan
 
24.02.16
07:45
Сколько сталкивался с такой задачей от пользователей, всегда они от нее отказывались или в итоге не нужно было. Потому что информация в таком виде (случайная упаковка из многих например) лишена смысла :).

Уж лучше имхо выводить количество упаковок. :)
11 Serginio1
 
24.02.16
09:54
(7) Там как раз выбирается первая запись из выборки с использованием сортировки.
Например по твой задаче можно выбрать упаковки с минимальным количеством
12 HardBall
 
24.02.16
10:55
(10) +1
Когда начинаются вопросы а Как в запросе провернуть такую...?
Сразу становится ясно,что постановка задачи хромает.
13 Serginio1
 
24.02.16
11:20
(12) Приведу пример. Нужно найти лучший прайс по цене и по остаткам на складе. Мин не прокатывает.
Саммый эффективный это использовать ties Code First и Linq to EF на примере 1С версии 7.7

На на безрыбье ...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой