|
Как правильно свернуть в запросе | ☑ | ||
---|---|---|---|---|
0
Coldboy
09.04.14
✎
12:25
|
Здравствуйте. Делаю запрос к двум табличным частям документа. При связи получается замноживание одной из таблиц, в результате получаются кривые данные. Как правильно сделать связь? Если оставить только вложенный запрос, то все хорошо. Вот запрос:
ВЫБРАТЬ ВложенныйЗапрос.Ссылка КАК Документ, ВложенныйЗапрос.Номенклатура КАК Блюдо, ВложенныйЗапрос.Стоимость КАК СтоимостьБлюда, ВложенныйЗапрос.ВсегоСтоимость КАК ВсегоСтоимостьБлюда, ВложенныйЗапрос.Количество КАК КоличествоБлюда, ВложенныйЗапрос.Склад, СБ_ВыпускПродукцииИнгредиенты.Номенклатура КАК Ингредиент, СБ_ВыпускПродукцииИнгредиенты.Количество КАК КоличествоИнгредиента, СБ_ВыпускПродукцииИнгредиенты.Стоимость КАК СтоимостьИнгредиента, СБ_ВыпускПродукцииИнгредиенты.ВсегоСтоимость КАК ВсегоСтоимостьИнгредиента ИЗ (ВЫБРАТЬ СБ_ВыпускПродукцииТовары.Ссылка КАК Ссылка, СБ_ВыпускПродукцииТовары.Номенклатура КАК Номенклатура, СУММА(СБ_ВыпускПродукцииТовары.Стоимость) КАК Стоимость, СУММА(СБ_ВыпускПродукцииТовары.ВсегоСтоимость) КАК ВсегоСтоимость, СБ_ВыпускПродукцииТовары.Идентификатор КАК Идентификатор, СУММА(СБ_ВыпускПродукцииТовары.Количество) КАК Количество, СБ_ВыпускПродукцииТовары.Ссылка.Склад КАК Склад ИЗ Документ.СБ_ВыпускПродукции.Товары КАК СБ_ВыпускПродукцииТовары ГДЕ СБ_ВыпускПродукцииТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата И СБ_ВыпускПродукцииТовары.Ссылка.Проведен = ИСТИНА СГРУППИРОВАТЬ ПО СБ_ВыпускПродукцииТовары.Ссылка, СБ_ВыпускПродукцииТовары.Номенклатура, СБ_ВыпускПродукцииТовары.Идентификатор, СБ_ВыпускПродукцииТовары.Ссылка.Склад) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Документ.СБ_ВыпускПродукции.Ингредиенты КАК СБ_ВыпускПродукцииИнгредиенты ПО ВложенныйЗапрос.Ссылка = СБ_ВыпускПродукцииИнгредиенты.Ссылка И ВложенныйЗапрос.Идентификатор = СБ_ВыпускПродукцииИнгредиенты.ИдентификаторПродукция СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Количество, ВложенныйЗапрос.Стоимость, ВложенныйЗапрос.ВсегоСтоимость, ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.Склад, СБ_ВыпускПродукцииИнгредиенты.Номенклатура, СБ_ВыпускПродукцииИнгредиенты.Количество, СБ_ВыпускПродукцииИнгредиенты.Стоимость, СБ_ВыпускПродукцииИнгредиенты.ВсегоСтоимость |
|||
1
hhhh
09.04.14
✎
12:29
|
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Количество, ВложенныйЗапрос.Стоимость, ВложенныйЗапрос.ВсегоСтоимость, сразу расстрелять. |
|||
2
Coldboy
09.04.14
✎
12:31
|
(1) пытался убрать задвоение, уже от без исходности ...
|
|||
3
_fvadim
09.04.14
✎
12:31
|
группировки тут вообще лишние, в запросе ни одной агрегатной функции нет.
|
|||
4
Coldboy
09.04.14
✎
12:34
|
как мне быть, чтобы не было замножение полей. замножение появляется после связи, количествоблюда, его стоимость считается неправильно. это надо исправить ...
|
|||
5
_fvadim
09.04.14
✎
12:35
|
(4) полей или записей?
и вкратце структуру таблиц давай |
|||
6
dk
09.04.14
✎
12:36
|
приведи пример попроще
есть таблица1 с полями .... и таблица2 с полями .... пример таблиц на 2-3 строчки приведи и итоговую таблицу3 какую хочешь получить |
|||
7
Coldboy
09.04.14
✎
12:37
|
допустим, изначально
Блюдо количество Сумма Блюдо1 5 10 после связи, получается уже вообще количество 100, а сумма 1000 происходит замножение этих записей в СКД. (5) зачем тебе структура? |
|||
8
Coldboy
09.04.14
✎
12:39
|
записи замножаются...
|
|||
9
Coldboy
09.04.14
✎
12:46
|
ап
|
|||
10
_fvadim
09.04.14
✎
12:49
|
(7) действительно, зачем мне...
|
|||
11
Coldboy
09.04.14
✎
12:52
|
(10) 2 табличные части одного документа, которые связаны по поле индефикатор. выбираю в запросе эти табличные части. Если беру 1 табличную часть, записи все нормально выбираются. после того как делаю связь по ссылке данного документа и индефикатору происходит дублирование или замножение даже записей.
|
|||
12
piter3
09.04.14
✎
12:55
|
не особо понял условие задачи, но может сначала свернуть таб. части, а уж потом их соединять
|
|||
13
Coldboy
09.04.14
✎
12:56
|
(12) свернул, во вложенном запросе табличную часть.
|
|||
14
_fvadim
09.04.14
✎
12:56
|
Я так понимаю, у тебя одному идентификатору товара соответствует несколько ингридиентов.
Если так, то при соединении должны быть дубли. Сформулируй, что ты хочешь получить на выходе? |
|||
15
Coldboy
09.04.14
✎
12:57
|
(14) да правильно понимаешь. одному индефикатору несколько ингридентов.
|
|||
16
Coldboy
09.04.14
✎
12:58
|
чтобы после связи, количество и сумма не замножилась из за того одному блюду, несколько ингредиентов идет в соответствие...
|
|||
17
_fvadim
09.04.14
✎
12:58
|
(15) значит запрос работает правильно
|
|||
18
Coldboy
09.04.14
✎
12:58
|
(17) а как мне быть в моем случае?
|
|||
19
Coldboy
09.04.14
✎
12:59
|
я хочу чтобы в СКД, при свертке мое количества блюда оставалось нормальным.
|
|||
20
piter3
09.04.14
✎
12:59
|
(15) там же пф есть всякие потребности ингридиентов по блюдам. оттуда возьми что ли для примера
|
|||
21
Coldboy
09.04.14
✎
12:59
|
(15) где там?
|
|||
22
_fvadim
09.04.14
✎
13:00
|
(19) это СКД тебе портит суммы, дело не в запросе
|
|||
23
Coldboy
09.04.14
✎
13:01
|
(22) и как быть?
|
|||
24
_fvadim
09.04.14
✎
13:03
|
(23) хз, я в СКД не шарю :)
может где-то "сумма" на "максимум" заменить? |
|||
25
piter3
09.04.14
✎
13:11
|
(23) внимательно посмотреть ПечатьПотребностьВИнгредиентах имхо
|
|||
26
Coldboy
09.04.14
✎
22:50
|
(25) а где смотреть?
|
|||
27
Фокусник
09.04.14
✎
23:04
|
группировка по товару, количество и сумму сделать Максимум()
|
|||
28
elCust
09.04.14
✎
23:18
|
У тебя видимо так все выглядит:
ТЧ1: Номенклатура1 10 шт 100 руб ТЧ2 Номенклатура1... Номенклатура1... Номенклатура1... Номенклатура1... Номенклатура1... Так? И ты пытаешься их соединить ЛЕВЫМ соединением? Это не верно. |
|||
29
Coldboy
10.04.14
✎
08:29
|
(28) да да именно так. и как мне бытЬ?
(27) а как итоги выводить? |
|||
30
Coldboy
10.04.14
✎
08:37
|
(28) тип того, точнее вот так
ТЧ1: Номенклатура1 ПолеСвязи 10 шт 100 руб ТЧ2: Номенклатура2 ПолеСвязи 2 шт 5 руб Номенклатура2 ПолеСвязи 3 шт 7 руб Хочу вывести Номенклатура 1 10 шт 100 руб Номенклатура2 2 шт 5 руб Номенклатура2 3 шт 7 руб. Как бы подчиненные вещи Номенклатуре1, только без замножения сумма и количеств.. |
|||
31
_fvadim
10.04.14
✎
09:52
|
(30) деревом что-ли?
|
|||
32
Coldboy
10.04.14
✎
10:38
|
(31) ну тип того, это продукция же на игрдиенты раскладывается и хочет все это в отчет вывести
|
|||
33
KokotovDV
10.04.14
✎
11:20
|
(30) В СКД, в разделе Ресурсы, убрать агрегатную функцию СУММА(Количество) , рассчитывать по Номенклатура
сделать просто: Количество , рассчитывать по Номенклатура |
|||
34
Coldboy
10.04.14
✎
12:01
|
(33) и суммирование должно же быть или как?
|
|||
35
CountR
10.04.14
✎
12:31
|
вместо Сумма поставь Максимум (или Минимум)
|
|||
36
KokotovDV
10.04.14
✎
12:37
|
(35) Этот вариант (как и вариант (33))решит только локальную задачу: не суммировать задвоенное количество по группировке номенклатуры. Но общие итоги суммировать необходимо. Вижу только один выход. Считать общее количество на уровне запроса. Но это привязывает к конкретной структуре группировок отчета. И выглядит криво.
|
|||
37
Coldboy
10.04.14
✎
13:29
|
(36) сделал СКД через объект, а все программно обрабатываю ... но блин не нравится ) хочу красоту )
|
|||
38
Kalambur
10.04.14
✎
13:32
|
Сумма(ВЫЧИСЛИТЬВЫРАЖЕНИЕСГРУППИРОВКОЙМАССИВ("Стоимость","Номенклатура")) по Блюдо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |