|
Простой запрос по двум регистрам | ☑ | ||
---|---|---|---|---|
0
thezos
17.10.11
✎
22:10
|
Запрос для универсального отчета, который показывает прибыль в УТ 10.3. Используется всего два регистра: продажи и продажи себестоимость. Но есть мелкая фигня, от которой не знаю как избавиться. Если по регистру продажи себестоимость списалось две и более партии, то количество и сумма из регистра продаж будут умножаться на это количество партий. Значит я не правильно соединил таблицы. Есть соображения как выйти из положения?
Вот сам запрос: ВЫБРАТЬ РАЗРЕШЕННЫЕ | Продажи.Номенклатура, | Продажи.Регистратор КАК Документ, | Продажи.Контрагент, | Продажи.Организация, | Продажи.ДоговорКонтрагента.Агент КАК Агент, | Продажи.ДоговорКонтрагента.Супервайзер КАК Супервайзер, | Продажи.ДоговорКонтрагента.АдресДоставки КАК Направление, | Продажи.Количество КАК Количество, | Продажи.Стоимость КАК Сумма, | ПродажиСебестоимость.Стоимость КАК Себестоимость, | Продажи.Регистратор.ВидОперации КАК ВидПродажи, | Продажи.Стоимость - ПродажиСебестоимость.Стоимость КАК Доход, | ВЫБОР | КОГДА ПродажиСебестоимость.Стоимость < 0 | ТОГДА -1 * (Продажи.Стоимость - ПродажиСебестоимость.Стоимость) / ПродажиСебестоимость.Стоимость * 100 | КОГДА ПродажиСебестоимость.Стоимость = 0 | ТОГДА 0 | ИНАЧЕ (Продажи.Стоимость - ПродажиСебестоимость.Стоимость) / ПродажиСебестоимость.Стоимость * 100 | КОНЕЦ КАК ДоходПроценты, | Продажи.Регистратор.ТипЦен КАК ТипЦен |{ВЫБРАТЬ | Номенклатура.*, | Контрагент.*, | Организация.*, | Агент.*, | Супервайзер.*, | Направление.*, | Количество, | Сумма, | Себестоимость, | Документ.*, | Доход, | ДоходПроценты, | ТипЦен.*} |ИЗ | РегистрНакопления.Продажи КАК Продажи | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость | ПО Продажи.Регистратор = ПродажиСебестоимость.Регистратор | И Продажи.Номенклатура = ПродажиСебестоимость.Номенклатура |ГДЕ | Продажи.Период МЕЖДУ &Дата1 И &Дата2 |{ГДЕ | Продажи.Номенклатура.*, | Продажи.Контрагент.*, | Продажи.Организация.*, | Продажи.ДоговорКонтрагента.Агент.* КАК Агент, | Продажи.ДоговорКонтрагента.Супервайзер.* КАК Супервайзер, | Продажи.ДоговорКонтрагента.АдресДоставки.* КАК Направление, | Продажи.Количество, | ПродажиСебестоимость.Стоимость КАК Себестоимость, | Продажи.Стоимость, | Продажи.Регистратор.ВидОперации.* КАК ВидПродажи, | (ВЫБОР | КОГДА ПродажиСебестоимость.Стоимость < 0 | ТОГДА -1 * (Продажи.Стоимость - ПродажиСебестоимость.Стоимость) / ПродажиСебестоимость.Стоимость * 100 | КОГДА ПродажиСебестоимость.Стоимость = 0 | ТОГДА 0 | ИНАЧЕ (Продажи.Стоимость - ПродажиСебестоимость.Стоимость) / ПродажиСебестоимость.Стоимость * 100 | КОНЕЦ) КАК ДоходПроценты, | (Продажи.Стоимость - ПродажиСебестоимость.Стоимость) КАК Доход, | Продажи.Регистратор.ТипЦен.* КАК ТипЦен} |{УПОРЯДОЧИТЬ ПО | Продажи.Период, | Организация.*, | Контрагент.*, | Документ.*, | Номенклатура.*} |ИТОГИ | СУММА(Количество), | СУММА(Сумма), | СУММА(Себестоимость), | СУММА(Доход), | СРЕДНЕЕ(ДоходПроценты) |ПО | ОБЩИЕ |{ИТОГИ ПО | Документ.*, | Контрагент.*, | Организация.*, | Агент.*, | Супервайзер.*, | Направление.*, | Номенклатура.*} |
|||
1
Kom-off
17.10.11
✎
22:26
|
Вместо левого соединения к регистру используй левое соединение к запросу к этому регистру и проводи группировку в этом запросе чтобы записи "схлопнулись". А еще в верхнем левом углу есть банер СКД: Бесплатный курс. Скачай и посмотри уроки 86, 87 и 88 - лишним не будет.
|
|||
2
shuhard
17.10.11
✎
22:26
|
(0) ИЗ
| РегистрНакопления.Продажи КАК Продажи либо группируй в подзапросе, если взял физические таблицы, либо возьми обороты, там уже сгруппировано |
|||
3
Жан Пердежон
17.10.11
✎
22:28
|
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ...)
и в подзапросе сгруппируй как надо |
|||
4
thezos
17.10.11
✎
22:29
|
мысль понял, спасибо
|
|||
5
thezos
17.10.11
✎
23:02
|
(1) хех, в итоге с универсального отчета переделал на скд
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |