Имя: Пароль:
1C
 
Как избавиться от декартова произведения?
0 Flipper
 
03.04.07
10:44
Есть запрос вида (для примера):
"ВЫБРАТЬ
|    Партии1.Номенклатура,
|    Партии1.Количество,
|    Партии1.Стоимость,
|    Партии1.Склад,
|    Партии2.Номенклатура КАК Номенклатура1,
|    Партии2.Склад КАК Склад1,
|    Партии2.Стоимость КАК Стоимость1,
|    Партии3.Номенклатура КАК Номенклатура2,
|    Партии3.Склад КАК Склад2,
|    Партии3.Количество КАК Количество1,
|    Партии3.Стоимость КАК Стоимость2,
|    Партии4.Номенклатура КАК Номенклатура3,
|    Партии4.Склад КАК Склад3,
|    Партии4.Количество КАК Количество2,
|    Партии4.Стоимость КАК Стоимость3
|ИЗ
|    РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет КАК Партии1
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет КАК Партии2
|        ПО Партии1.Регистратор.Сделка = Партии2.Регистратор.Сделка
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет КАК Партии3
|        ПО Партии1.Регистратор.Сделка = Партии3.Регистратор.Сделка
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет КАК Партии4
|        ПО Партии1.Регистратор.Сделка = Партии4.Регистратор.Сделка"

Так никак не могу избавиться от этого умножения подмножеств одного поля. Пробывал и вложенными запросами и различными комбинациями СОЕДИНЕНИЙ (ВНУТРЕННЕЕ, ПОЛНОЕ) с группировками (в тч во вложенных). Может кто знает как с этим побороться... а то еще чуть-чуть и буду строить n разных ПостроителейЗапросов и соединять результаты алгоритмически через отбор )))
1 Flipper
 
03.04.07
10:48
Естественно... каждая таблица с определенными условиями...
2 Михаил Козлов
 
03.04.07
10:59
Неясен содержательный смысл запроса, что Вы хотите получить?
В так, как он написан произведение неизбежно.
3 Flipper
 
03.04.07
11:20
(2) Данный запрос для примера. Смысл примерно такой - на основании Сделки формируются различные документы (Реализация, Закупка, Тр-накл и тп). Каждый из документов двигает регистр ПартииТоваровНаСкладах с разным (например) ВидомДвижений и знаком. Нужно собрать (в строку) Сделка | Реализация (Ном, кол, сум) | Закупка ... и тд. - это тоже пример утрированный (на самом деле все сложнее - просто реального запроса нет под рукой). Суть в том, что собирается выборка из подмножеств одного регистра (множнества) по Сделке(в данном примере). Важно, что каждое подмножество УНИКАЛЬНО и не пересекается с другими.
4 Леха Дум
 
03.04.07
11:28
Используйте группировки и вложенные запросы
5 Flipper
 
03.04.07
11:40
(4) -> (0)
6 Naumov
 
03.04.07
11:58
(3) А если все уникально, то может вложенном запросе объединение всей этой инфы, а в основном запросе сгрупируешь всю инфу по сделкам.