|
Простейший запрос какую-то дичь выдает | ☑ | ||
---|---|---|---|---|
0
Темный
20.09.23
✎
20:18
|
Добрый вечер, коллеги! Есть простенький запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ ПродажиСпериодамиИЗаявками.Оборудование КАК Оборудование, ПродажиСпериодамиИЗаявками.КоличествоИтогом КАК КоличествоИтогом, ПродажиСпериодамиИЗаявками.КоличествоЗаявок КАК КоличествоЗаявок, ВЫБОР КОГДА &Периодичность = "Неделя" ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродажОборотыНеделя.КоличествоОборот, 0) КОГДА &Периодичность = "Месяц" ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродажОборотыМесяц.КоличествоОборот, 0) КОГДА &Периодичность = "Квартал" ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродажОборотыКвартал.КоличествоОборот, 0) КОГДА &Периодичность = "Год" ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродажОборотыГод.КоличествоОборот, 0) ИНАЧЕ 0 КОНЕЦ КАК Количество, ПродажиСпериодамиИЗаявками.НачалоПер КАК Период ИЗ ПродажиСпериодамиИЗаявками КАК ПродажиСпериодамиИЗаявками ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Год, ) КАК ВыручкаИСебестоимостьПродажОборотыГод ПО (ПродажиСпериодамиИЗаявками.Оборудование = ВыручкаИСебестоимостьПродажОборотыГод.АналитикаУчетаНоменклатуры.Номенклатура) И (ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОборотыГод.Период) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Квартал, ) КАК ВыручкаИСебестоимостьПродажОборотыКвартал ПО (ПродажиСпериодамиИЗаявками.Оборудование = ВыручкаИСебестоимостьПродажОборотыКвартал.АналитикаУчетаНоменклатуры.Номенклатура) И (ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОборотыКвартал.Период) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Месяц,) КАК ВыручкаИСебестоимостьПродажОборотыМесяц ПО (ПродажиСпериодамиИЗаявками.Оборудование = ВыручкаИСебестоимостьПродажОборотыМесяц.АналитикаУчетаНоменклатуры.Номенклатура) И (ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОборотыМесяц.Период) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Неделя, ) КАК ВыручкаИСебестоимостьПродажОборотыНеделя ПО (ПродажиСпериодамиИЗаявками.Оборудование = ВыручкаИСебестоимостьПродажОборотыНеделя.АналитикаУчетаНоменклатуры.Номенклатура) И (ПродажиСпериодамиИЗаявками.НачалоПер = ВыручкаИСебестоимостьПродажОборотыНеделя.Период) УПОРЯДОЧИТЬ ПО Период С таблицей "ПродажиСПериодамиИЗаявками" - все ок, 12 аккуратных записей. У меня переодичность - месяц, а период отчета год. А вот виртуальная таблица возвращает дичь. За первый месяц кол-во 51 при продажах 1, в феврале - 2 при продажах 2, в апреле - 4 при продажах 2 Вроде, все правильно в запросе? |
|||
1
RomanYS
20.09.23
✎
18:17
|
Вроде, все правильно в запросе?
Зависит от того, что ты хочешь получить. Может не стоит соединять с 4 таблицами, если используется одна из них? Ну или в соединениях отборы прикрутить... |
|||
2
Новиков
20.09.23
✎
19:54
|
(0) Тут сама логика ошибочна: ВТ ПродажиСпериодамиИЗаявками, судя по названию и так должна содержать продажи, и какая то надежда на это есть вроде в поле КоличествоИтогом, но для чего её "разворачивать" оборотами по РН ВыручкаИСебестоимостьПродаж - абсолютно не ясно. Какая здесь логика, если откуда-то в запрос приходит таблица "свёрнутая", которую потом именно по оборотам, через ключ аналитики, нужно развернуть? Если Вам этот разворот так необходим, так поменяйте местами эти таблицы, и клейте к развернутой - свернутую ВТ.
|
|||
3
Темный
21.09.23
✎
06:46
|
(1) 4 таблицы потому, что периодичность пользователь может разную выбирать.
|
|||
4
Темный
21.09.23
✎
06:50
|
(2) В ВТ "ПродажиСПериодамиИЗаявками" - кол-во нарастающим итогом по каждый период. А справа - продажи за этот период. Вот:
Дата Нарастающий Продажи 01.22 1 1 02.22 2 0 03.22 2 3 04.22 5 1 05.22 6 0 И т.д. |
|||
5
Темный
21.09.23
✎
06:55
|
Вопрос не про это. Вопрос такой: Соединяя таблицы из 12 строк в этом запросе, я получаю под сотню строк в результирующем. КАК такое может быть? т. е. таблица оборотов возвращает не одну запись за период, а несколько. В январе возвращает 50 записей, где слева - пусто. И одну, где слева есть соответствующая запись левой таблица. В феврале - две записи по единице. Так и есть, в феврале 2 продажи. Но почему не просто двойка? В апреле - 2 продажи, в результате - 4 записи по единице.
|
|||
6
АНДР
21.09.23
✎
07:08
|
(4) Почему нарастающий в январе - 1 шт. и феврале - 2 шт. разный, если была продажа только в январе - 1 шт?
|
|||
7
Темный
21.09.23
✎
07:10
|
(6) Ну да, верно. Это я сейчас тут на коленке написал, просто для примера, что я хочу. Да, нарастающий на 1 меньше
|
|||
8
АНДР
21.09.23
✎
07:14
|
(4) и (5) что-то у тебя данные по продажам, как минимум за февраль, расходятся в постах.
Добавь в условие соединения выбор ложь или истина в зависимости от того, какая из присоединяемых таблиц нужна в результате. |
|||
9
Темный
21.09.23
✎
08:52
|
Ладно, упростим задачу. Вот запрос:
ВЫБРАТЬ ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК КоличествоОборот, ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Месяц, АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура) КАК ВыручкаИСебестоимостьПродажОбороты НачалоПериода - 01.02.2022 00:00:00 КонецПериода - 28.02.2022 23:59:59 Результат: КоличествоОборот АналитикаУчетаНоменклатурыНоменклатура 1 Планшетный режущий плоттер iECHO PK0705 PLUS 1 Планшетный режущий плоттер iECHO PK0705 PLUS Почему 2 записи? |
|||
10
Гена
21.09.23
✎
09:07
|
(9) А если ВЫБРАТЬ РАЗЛИЧНЫЕ
то сколько выдаёт записей? |
|||
11
Темный
21.09.23
✎
09:10
|
(10)
1 01.02.2022 0:00:00 Планшетный режущий плоттер iECHO PK0705 PLUS |
|||
12
BDA80
21.09.23
✎
09:20
|
(11) Аналитику в выходные поля добавьте ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры
|
|||
13
RomanYS
21.09.23
✎
09:52
|
ВТ Обороты выдает свернутые по запрашиваемым измерениям данные. В твоем случае это АналитикаУчетаНоменклатуры, сворачивать до АналитикаУчетаНоменклатуры.Номенклатура ты должен сам явной группировкой
|
|||
14
АНДР
21.09.23
✎
10:12
|
(12) Регистратор будет информативнее
|
|||
15
Темный
21.09.23
✎
17:27
|
(12) (13) Да, верно. Из-за этого
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |