![]() |
![]() |
![]() |
|
Как избавиться от декартова произведения? | ☑ | ||
---|---|---|---|---|
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) А если все уникально, то может вложенном запросе объединение всей этой инфы, а в основном запросе сгрупируешь всю инфу по сделкам.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |