|
Задвоение в отчете | ☑ | ||
---|---|---|---|---|
0
Jamiq
15.02.13
✎
14:58
|
8.1
Добрый день. Есть три вида Документов в каждом своя сумма. Есть справочник контраганеты. В отчете должны быть 4 столбца: Контрагенты и 3 столбца с Суммами сумм документов (допустим: есть 2 документа "Заказ покупателя" на определенного контрагента, в отчете суммы складываються) и так еще для двух типов документов. Пытаюсь написать отчет, он одни суммы складывает нормально, а для других документов задваивает. Подскажите, как правильно написать такой запрос? |
|||
1
kosts
15.02.13
✎
15:01
|
(0) Группировку нужно делать
|
|||
2
Галахад
гуру
15.02.13
✎
15:02
|
(0) Свой покажи.
|
|||
3
Jamiq
15.02.13
✎
15:03
|
(1) В "Групповое Поле" добавляю Контрагента
а в "Суммируемое" 3 суммы. Чет не получается |
|||
4
Jamiq
15.02.13
✎
15:03
|
(2)
"ВЫБРАТЬ | Контрагенты.Ссылка КАК Контрагент, | СУММА(ЗаказПокупателя.СуммаДокумента) КАК СуммаЗаказов, | СУММА(РасходнаяНакладная.СуммаДокумента) КАК СуммаОтгрузки, | СУММА(ОплатаПоЗаказуПокупателя.СуммаОплаты) КАК СуммаОплаты |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя | ПО Контрагенты.Ссылка = ЗаказПокупателя.Контрагент | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОплатаПоЗаказуПокупателя КАК ОплатаПоЗаказуПокупателя | ПО Контрагенты.Ссылка = ОплатаПоЗаказуПокупателя.Контрагент | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная | ПО Контрагенты.Ссылка = РасходнаяНакладная.Контрагент |ГДЕ | ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода | И ОплатаПоЗаказуПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода | И РасходнаяНакладная.Дата МЕЖДУ &НачПериода И &КонПериода | И Контрагенты.Ссылка = &Контрагент | |СГРУППИРОВАТЬ ПО | Контрагенты.Ссылка | |УПОРЯДОЧИТЬ ПО | Контрагент"; |
|||
5
Jamiq
15.02.13
✎
15:10
|
фигня полная? =)
|
|||
6
kosts
15.02.13
✎
15:13
|
Документы в одном периоде могут относиться к другому периоду?
Ну и в этот отчет попадут всякие не_проведенные и помеченные на удаление документы. |
|||
7
Jamiq
15.02.13
✎
15:19
|
(6) НачПериода и КонПериода это реквизиты на форме, которые задаются.
Не понял вопроса. не проведенных и помеченных нет =) У контрагента два документа "ЗаказПокупателя" он складывает сумму нормально. А для этого же контрагента суммы документов "РасходнаяНакладная" и "ОплатаПоЗаказуПокупателя" задваивает. |
|||
8
kosts
15.02.13
✎
15:24
|
Документы в одном периоде могут относиться к другому периоду?
Т.е. может получиться что за январь документ отгрузку сделают в феврале? |
|||
9
Jamiq
15.02.13
✎
15:25
|
такого нет. это так тестовая база
|
|||
10
kosts
15.02.13
✎
15:32
|
Группируй каждый документ отдельно, можно через временные таблицы.
По всей видимости например документов Документ.ЗаказПокупателя несколько штук и по этому сперва в запросе двоятся строки, а потом суммируются суммы. |
|||
11
Jamiq
15.02.13
✎
15:37
|
(10) а где про них можно почитать (временные таблицы)?
|
|||
12
ДенисЧ
15.02.13
✎
15:39
|
(11) не поверишь... В конфигураторе есть кнопочка F1...
|
|||
13
kosts
15.02.13
✎
15:41
|
ничего сложного нет, вот так примерно
|
|||
14
kosts
15.02.13
✎
15:42
|
(13) Ну только в твоем случае первый запрос нужно сгруппировать
|
|||
15
Jamiq
15.02.13
✎
16:00
|
(14)
ВЫБРАТЬ ЗаказПокупателя.Контрагент, СУММА(ЗаказПокупателя.СуммаДокумента) КАК СуммаЗаказов ПОМЕСТИТЬ ВТЗаказ ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ГДЕ ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода И ЗаказПокупателя.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ЗаказПокупателя.Контрагент |
|||
16
Jamiq
15.02.13
✎
16:01
|
Результат запроса: Количество 1
|
|||
17
kosts
15.02.13
✎
17:36
|
(16) Всё правильно, так и есть, выборка при создании временной таблицы возвращает количество строк.
См. (13) и не разрывай создание временной таблицы и её использование... |
|||
18
Archer08
15.02.13
✎
18:00
|
Я бы сделал через объединение. Универсально независимо от количества документов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |