Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Help!!! увеличивает сумму запроса в n раз!!!! / 22 сообщений из 22, страница 1 из 1
18.03.2012, 01:38
    #37710331
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Есть комплексная для Украины 82,
Добавлен РегистрСведений ДоговораАвторов (осн.измерения "книга договор автор...", ресурсы "процент, видпроцента...")
стандартные оборотные Регистры Накопления:
"Продажи" (сумма продаж по товарам) и
"ПродажиСебестоимость" (себестоимость продаж по товарам)

Хочу получить для всех товаров из регистра ДоговораАвторов продажи и себестоимость и кво проданного товара , а результат в 6 раз больше чем ожидалось.... , а если еще добавить договор и автора и по ним сгруппировать, то в 2 раза

ВЫБРАТЬ
ДоговораАвторовСрезПоследних.книга КАК книга,
СУММА(ПродажиОбороты.Количество) КАК Количество,
СУММА(ПродажиОбороты.Стоимость) КАК Стоимость,
СУММА(ПродажиСебестоимость.Количество) КАК Количество1,
СУММА(ПродажиСебестоимость.Стоимость) КАК Стоимость1
ИЗ
РегистрСведений.ДоговораАвторов.СрезПоследних(&ВыбДата, ) КАК ДоговораАвторовСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК ПродажиОбороты
ПО ДоговораАвторовСрезПоследних.книга = ПродажиОбороты.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
ПО ДоговораАвторовСрезПоследних.книга = ПродажиСебестоимость.Номенклатура
СГРУППИРОВАТЬ ПО
ДоговораАвторовСрезПоследних.книга

В чем ошибка????
http://www.sql.ru/forum/images/cry.gif
...
Рейтинг: 0 / 0
18.03.2012, 09:34
    #37710393
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
!!!!! ошибка !!!!! в левом !!!!!! соединении !!!!!
...
Рейтинг: 0 / 0
18.03.2012, 14:49
    #37710523
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
книга - тип номенклатура?
...
Рейтинг: 0 / 0
18.03.2012, 14:58
    #37710532
rigus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Получите сначала таблицу содержащую книги в единственном количестве, а уже потом к этой таблице применяйте левое соединение.
...
Рейтинг: 0 / 0
18.03.2012, 16:52
    #37710633
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Спасибо всем за помощь.
Есть еще пара неясностей.А если у нас на выходе должна быть таблица типа "товар,договор,кво, суммапродаж,себестоимость"
Продажи идут без привязки к договорам.Те суммы должны повторяться для каждой пары договор-товар.
Все равно надо строить сначала внутренний запрос с группировкой по товарам - те одна строка на каждый товар, а потом привязывать договорам???
...
Рейтинг: 0 / 0
18.03.2012, 17:18
    #37710652
rigus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Старайтесь не увлекаться внутренними запросами, т.к. нет гарантии что sql вернет нормальный план
Лучше используйте временные таблицы, т.к. они дают более стабильное время выполнения + сам запрос становится более простым, а сервер с большей вероятностью построит оптимальный план выполнения запроса.
В Вашем случае все зависит от количества договоров на 1 товар, если 1-2, то можно сразу получить необходимую вам таблицу (договор товар), а затем соединить ее с регистром продаж. Если договоров больше, то лучше вначале получить обороты в разрезе товара (получив еще 1 временную таблицу содержащую товары в единственном числе из таблицы товары договоры ), а потом уже соединить полученые данные с таблицей товары - договорами.
...
Рейтинг: 0 / 0
18.03.2012, 23:46
    #37711040
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
rigus,
Ой,а проблема таки в 2-х левых соединениях...
Если одно - то сумма не задваивает.Сгруппировал еще и по суммам - действительно при одном левом соединении все ок, а при двух строк в 2 раза больше...
Вроде левое должно добавлять столбцы к начальной табл, а не строки???
...
Рейтинг: 0 / 0
19.03.2012, 00:34
    #37711068
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Shuhard,
А где конкретно???
...
Рейтинг: 0 / 0
19.03.2012, 12:39
    #37711560
vadim-tmn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
redking,
осн.измерения "книга договор автор...",???
Это три основных измерения?? ну тогда в этом и проблема , если одна книга по двум договорам и может более одного автора...
...
Рейтинг: 0 / 0
19.03.2012, 13:29
    #37711640
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
vadim-tmn,
а почему тогда одно левое соединение(любое продажи или себестоимость) - и сумма верная???
А если 2 (и продажи и себестоимость) - то сумма в 2 раза больше(или если сгруппировать по суммам то строк в 2 раза больше)
А если 3 (и продажи и себестоимость и опять себестоимость ) - то сумма в 3 раза больше(или если сгруппировать по суммам то строк в 3 раза больше)
и как правильно сделать???
...
Рейтинг: 0 / 0
19.03.2012, 14:03
    #37711709
vadim-tmn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
redking,
Что то типа такого)), а умножается когда два соединения, потому что несколько записей сначала соед из одной а потом умножаем на из второго соед...

ВЫБРАТЬ
ДоговораАвторов.Книга,
ПродажиСебестоимость.Количество,
ПродажиСебестоимость.Стоимость,
ВложенныйЗапрос.Количество КАК Количество1,
ВложенныйЗапрос.Стоимость КАК Стоимость1
ИЗ
РегистрСведений.ДоговораАвторов.СрезПоследних(&ВыбДата, ) КАК ДоговораАвторов
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СУММА(Продажи.Количество) КАК Количество,
СУММА(Продажи.Стоимость) КАК Стоимость,
Продажи.Книга КАК Книга
ИЗ
РегистрНакопления.Продажи КАК Продажи

СГРУППИРОВАТЬ ПО
Продажи.Книга) КАК ВложенныйЗапрос
ПО ВложенныйЗапрос.Книга = ДоговораАвторов.Книга
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
ПО ДоговораАвторов.Книга = ПродажиСебестоимость.Книга
...
Рейтинг: 0 / 0
19.03.2012, 14:05
    #37711712
vadim-tmn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
vadim-tmn,

ой забыл

ВЫБРАТЬ
ДоговораАвторов.Книга,
СУММА(ПродажиСебестоимость.Количество) КАК Количество,
СУММА(ПродажиСебестоимость.Стоимость) КАК Стоимость,
ВложенныйЗапрос.Количество КАК Количество1,
ВложенныйЗапрос.Стоимость КАК Стоимость1
ИЗ
РегистрСведений.ДоговораАвторов.СрезПоследних(&ВыбДата, ) КАК ДоговораАвторов
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СУММА(Продажи.Количество) КАК Количество,
СУММА(Продажи.Стоимость) КАК Стоимость,
Продажи.Книга КАК Книга
ИЗ
РегистрНакопления.Продажи КАК Продажи

СГРУППИРОВАТЬ ПО
Продажи.Книга) КАК ВложенныйЗапрос
ПО ВложенныйЗапрос.Книга = ДоговораАвторов.Книга
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
ПО ДоговораАвторов.Книга = ПродажиСебестоимость.Книга

СГРУППИРОВАТЬ ПО
ДоговораАвторов.Книга,
ВложенныйЗапрос.Количество,
ВложенныйЗапрос.Стоимость
...
Рейтинг: 0 / 0
19.03.2012, 15:14
    #37711853
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
vadim-tmn,
Не понял??? вроде левое соединение только вправо расширяет таблицу, а не меняет уже существующие данные
...
Рейтинг: 0 / 0
19.03.2012, 15:24
    #37711876
vadim-tmn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
redking,

ну если там записей больше чем одно по полю соединения, то количество строк в левой увеличивается, дублируются, а когда еще прилепляете одну то увеличиваются уже увеличенные
...
Рейтинг: 0 / 0
19.03.2012, 16:16
    #37711978
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
vadim-tmn,
Интересно... я опытным путем нашел, что если брать не "РегистрНакопления.Продажи", а "РегистрНакопления.Продажи.Обороты"
и соответственно не "РегистрНакопления.ПродажиСебестоимость", а "РегистрНакопления.ПродажиСебестоимость.Обороты"
то все ок.А почему???
...
Рейтинг: 0 / 0
19.03.2012, 16:29
    #37712005
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
А мне надо период вытянуть
а периода в оборотах нету
...
Рейтинг: 0 / 0
19.03.2012, 17:42
    #37712174
rigus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Либо настраивайте параметры виртуальных таблиц оборотов (Начало, конец периода, периодичность)
Либо делайте номальное суммирование через ВЫБОР с учетом вида движения приход или расход.
...
Рейтинг: 0 / 0
19.03.2012, 20:11
    #37712402
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
rigus,
Это оборотные регистры... нет ни прихода ни расхода...
...
Рейтинг: 0 / 0
20.03.2012, 12:23
    #37713189
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Ауу - где все гуру? Неужели никто не знает?
...
Рейтинг: 0 / 0
20.03.2012, 13:55
    #37713437
vadim-tmn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
redking,

Почему понятно?) потому что в оборотах уже все суммировано за указанный период!
А что, то что я отправил, скрипт... не работает???)
...
Рейтинг: 0 / 0
20.03.2012, 14:25
    #37713518
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
Урра!!! дошло!!!
А я забыл соединить регистры накопления по регистратору!
Всем кто терпел мои мысленные потуги огромное спасибо!!!
...
Рейтинг: 0 / 0
20.03.2012, 23:33
    #37714687
redking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help!!! увеличивает сумму запроса в n раз!!!!
vadim-tmn,

Сорри, я не сразу понял, что под плюсом запрос... не привык.
Этот запрос считает правильно - огромное спасибо.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Help!!! увеличивает сумму запроса в n раз!!!! / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]