|
Группировка в запросе | ☑ | ||
---|---|---|---|---|
0
lite777
26.09.22
✎
16:08
|
Здравствуйте , есть запрос где пытаюсь вычислить остаток долга по заказу, не мойму почему консоль запросов пишет что поля - ЗаказыПокупателейОстатки.ЗаказаноОстаток,
РасчетыСКлиентамиОстатки.СуммаОстаток, ЗаказКлиентаТовары.Сумма, ЗаказКлиентаТовары.КоличествоУпаковок не входять в группировку, -ОШИБКА в ЗАПРОСЕ, мне нужно просуммировать строки из заказа но количество взять и РГ - ЗаказыПокупателейОстатки.ЗаказаноОстаток * ЗаказКлиентаТовары.Сумма/ЗаказКлиентаТовары.КоличествоУпаковок КАК СуммаСтроки , ВЫБРАТЬ РАЗРЕШЕННЫЕ СтатусыЗаказовКлиентовСрезПоследних.ЗаказКлиента КАК Ссылка, СтатусыЗаказовКлиентовСрезПоследних.СтатусЗаказаКлиента КАК Статус, ЗаказыПокупателейОстатки.ЗаказаноОстаток * ЗаказКлиентаТовары.Сумма/ЗаказКлиентаТовары.КоличествоУпаковок КАК СуммаСтроки , РасчетыСКлиентамиОстатки.СуммаОстаток КАК СуммаОстаток ПОМЕСТИТЬ ВТТОВАРЫ ИЗ РегистрСведений.СтатусыЗаказовКлиентов.СрезПоследних КАК СтатусыЗаказовКлиентовСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки ПО (СтатусыЗаказовКлиентовСрезПоследних.ЗаказКлиента = ЗаказыПокупателейОстатки.Заказ) ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары ПО (ЗаказыПокупателейОстатки.Заказ = ЗаказКлиентаТовары.Ссылка) И (ЗаказКлиентаТовары.Номенклатура = ЗаказыПокупателейОстатки.Номенклатура) И (ЗаказКлиентаТовары.Характеристика = ЗаказыПокупателейОстатки.Характеристика) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Остатки(,) КАК РасчетыСКлиентамиОстатки ПО ЗаказыПокупателейОстатки.Заказ=РасчетыСКлиентамиОстатки.ЗаказПокупателя ГДЕ СтатусыЗаказовКлиентовСрезПоследних.СтатусЗаказаКлиента <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказаКлиента.Закрыт) И СтатусыЗаказовКлиентовСрезПоследних.СтатусЗаказаКлиента <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказаКлиента.Отменен) И СтатусыЗаказовКлиентовСрезПоследних.ЗаказКлиента.Магазин = &Магазин СГРУППИРОВАТЬ ПО СтатусыЗаказовКлиентовСрезПоследних.ЗаказКлиента, СтатусыЗаказовКлиентовСрезПоследних.СтатусЗаказаКлиента, ЗаказыПокупателейОстатки.ЗаказаноОстаток, РасчетыСКлиентамиОстатки.СуммаОстаток, ЗаказКлиентаТовары.Сумма, ЗаказКлиентаТовары.КоличествоУпаковок ; ВЫБРАТЬ ВТТОВАРЫ.Ссылка , ВТТОВАРЫ.Ссылка.Дата КАК Дата, ВТТОВАРЫ.Ссылка.Номер КАК Номер, ВТТОВАРЫ.Ссылка.Магазин КАК Магазин, ВТТОВАРЫ.Ссылка.СуммаДокумента КАК СуммаДокумента, ВТТОВАРЫ.Ссылка.НомерЗаказаНаСайте КАК НомерЗаказаНаСайте, ВТТОВАРЫ.Ссылка.Клиент КАК Клиент, ВТТОВАРЫ.Ссылка.ТелефонКлиента КАК Телефон, ВТТОВАРЫ.Статус , ВТТОВАРЫ.Ссылка.СуммаДокумента-( ЕСТЬNULL( СУММА(СуммаСтроки),0) - ЕСТЬNULL(СуммаОстаток,0) ) КАК Оплачено , ЕСТЬNULL( СУММА(СуммаСтроки),0)-ЕСТЬNULL(СуммаОстаток,0) КАК ОстатокОплаты ИЗ ВТТОВАРЫ КАК ВТТОВАРЫ СГРУППИРОВАТЬ ПО ВТТОВАРЫ.Ссылка, ВТТОВАРЫ.Статус , СуммаОстаток УПОРЯДОЧИТЬ ПО ВТТОВАРЫ.Ссылка.Дата УБЫВ |
|||
1
lite777
26.09.22
✎
16:11
|
Вот Это все пришлось посадить в группировку
ЗаказыПокупателейОстатки.ЗаказаноОстаток, РасчетыСКлиентамиОстатки.СуммаОстаток, ЗаказКлиентаТовары.Сумма, ЗаказКлиентаТовары.КоличествоУпаковок |
|||
2
lite777
26.09.22
✎
16:36
|
похоже надо сделать СУММА(ЗаказыПокупателейОстатки.ЗаказаноОстаток * ЗаказКлиентаТовары.Сумма/ЗаказКлиентаТовары.КоличествоУпаковок)
|
|||
3
Мультук
гуру
26.09.22
✎
17:38
|
(2)
Так как у тебя ЛЕВОЕ СОЕДИНЕНИЕ неплохо было бы использовать еще и ЕСТЬNULL |
|||
4
rudnitskij
26.09.22
✎
18:05
|
(0) Левое соединение с виртуальными таблицами КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЕТСЯ во первых с точки зрения производительности
во вторых, оно может хрен пойми какие результаты давать. Остатки пишите во временную таблицу и соединение делайте уже с ней |
|||
5
Мультук
гуру
26.09.22
✎
18:18
|
(4)
>>во вторых, оно может хрен пойми какие результаты давать. Типа один раз 8 мешков, а другой 3 литра? Можно пруф на данную ситуацию ? |
|||
6
mistеr
26.09.22
✎
19:25
|
(5) Имеется в виду, что может выбираться не оптимальный план. Не всегда, а иногда. То есть нестабильность плана.
|
|||
7
rudnitskij
26.09.22
✎
23:12
|
(6) Именно так
|
|||
8
rudnitskij
26.09.22
✎
23:13
|
(5) судя по комментарию, вы еще не пришли к стадии "как же мало я знаю 1С") К ней приходят лет после 5 стажа
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |