#0
by lamme
Есть запрос. Помогите передалть на прямой запрос. Запрос=СоздатьОбъект("Запрос"); В итоге получается таблица Пытаюсь передалть на прямой запрос - знаний не хватет |SELECT ПродажиОбороты.Товар [Товар $Справочник.Товары], ПродажиОбороты.КоличествоОборот , $ПродажиОбороты.Склад Затруднения 1. как указать колонку период=месяц 2. как указать что продажи нужны по скл1 и скл2
#0
by lamme
Есть запрос. Помогите передалть на прямой запрос. Запрос=СоздатьОбъект("Запрос"); В итоге получается таблица Пытаюсь передалть на прямой запрос - знаний не хватет |SELECT ПродажиОбороты.Товар [Товар $Справочник.Товары], ПродажиОбороты.КоличествоОборот , $ПродажиОбороты.Склад Затруднения 1. как указать колонку период=месяц 2. как указать что продажи нужны по скл1 и скл2
#3
by lamme
с выводом итогов по месяцам разобрался |SELECT ПродажиОбороты.Товар [Товар $Справочник.Товары], ПродажиОбороты.КоличествоОборот, ПродажиОбороты.Период |FROM $РегистрОбороты.Продажи(:НачДата~, :КонДата~ ,Месяц,,(Склад = :выбСкл) AND (Товар IN (SELECT Val From #Группа)),Товар,Количество) AS ПродажиОбороты как указать - что нужны колво продано1 при условии что склад = выбСкл1 и продано2 при условии что склад = выбСкл2 и
#8
by lamme
тут вроде бы получиться что продажи смотрим или по выбСкл1 или по выбСкл2 проверю конечно .. но мучают сомнения
#10
by lamme
ну да .. в итоге получается таблица с колонками Товар, КолвоОборот, Месяц где в КолвоОборот - одновременно входят продажи по ВыбСкл1 и ВыбСкл2 а надо как то разделить эти 2 цифры по этим 2 складам
#17
by Андрей_Андреич
Я один такой тупой? - Зачем группировка по "ПродажиОбороты.КоличествоОборот"? - Это yадо через Sum
#20
by Дядя Васька
В Select, но не взлетит, если по обоим сразу выбирать через или он же тебе по складам не разобьет что по обоим продавалось, итог по обоим вернет вроде как.
#25
by Дядя Васька
Я там со скобками намудрил походу. Тупо синтаксическая ошибка, года два на ++ не писал.
#27
by Дядя Васька
Запятая явно не в тему опять же. Что-то такое. Отлаживай. Нагугли синтаксис INNER JOIN
#28
by ParaWiz
и кстати замени :КонДата~ на :КонДата~~ ... если нужны результаты включая весь день КонДата
#29
by Попытка1С
На самом деле надо так (:НачДата, :КонДата~,...) Группировки: Товар, Период, Склад. Продажи в sum Нужные склады укладываешь в список, Условие Склад in (Select val from #СпСклады) Все это хозяйство выгружаешь в индексированную таблицу, создаешь индексы по обходу и вперед.
#36
by DCKiller
Да уж, ну вы все и писаки :) Мне это сразу напомнило древний баян про какой-то советсткий НИИ, в котором пытались математическими методами определить, сколько х..ев поместится в ведро. Раздуть из мухи такого слона - это только на мисте могут. Запрос простейший, а намудрили столько, что автор, по ходу, уже в ужасе рвет волосы у себя на попе, читая все это и повторяет про себя "Лучше бы я не спрашивал!.." :)
#37
by Андрей_Андреич
Понятно, что вариантов написания может быть много. А ТС лучше на тематический форум 1cpp вопросы задавать - здесь все 7.7 уже забыли и какашками кидаются
#38
by lamme
не - спросить то можно было а вот ответы .. пока понятно мало что - поэтому и не понятно
#39
by DCKiller
Может, сделаем уже вот хотя бы как-то вот так, а? "SELECT $СпрКлиенты.ID As Агент, РегПродажи.Товар, РегПродажи.Период, РегПродажи.Склад, THEN РегПродажи.КоличествоОборот ELSE 0 END) As ПроданоСкл1, THEN РегПродажи.КоличествоОборот ELSE 0 END) As ПроданоСкл2 FROM $РегистрОбороты.Продажи(:Нач~, :Кон~, Месяц, , Склад IN (SELECT val FROM #ВТСклады) AND Товар IN (SELECT val FROM #ВТТовары), (Товар, Склад), (Количество)) As РегПродажи INNER JOIN $Справочник.Контрагенты As СпрКлиенты ON СпрКлиенты.ID = РегПродажи.Клиент РегПродажи.Товар, РегПродажи.Склад, РегПродажи.Период, $СпрКлиенты.Агент" По крайней мере, хотя бы посмотришь, что получится...
#40
by lamme
спасибо получилось примерно вот так |SELECT |ПродажиОбороты.Товар [Товар $Справочник.Товары], ПродажиОбороты.Период,ПродажиОбороты.Склад [Товар $Справочник.Склады], Надо еще проверить достоверность полученных цифр
#42
by lamme
если убираю группировку по складу - начинает ругаться на Склады Column 'ПродажиОбороты.Склад' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
#48
by lamme
в готовый запрос сможешь написать пока у меня работает корректно. понять не могу - что не верно
#50
by ЧеловекДуши
Сделай так Все ровно у тебя уже есть группировка по складам. А уже в отчете ты будешь раскидывать склады так, как тебе надо.
#52
by ЧеловекДуши
У тебя плохое представление того, а что же ты хочешь получить и для чего это было сделано в старом отчете :)
#54
by lamme
неа. я так уже пробовал. так получаться 4 колонки Товар*Период*Склад*КолвоПродано а надо чтобы КолвоПродано в одном запрсое считало по разным складам. т.е. - дает данные Товар*Период*Склад(по идее не нужная колонка)*ПроданоСклад1*ПроданоСклад2
#55
by ЧеловекДуши
Если слушать то делай так |SELECT ,SUM(CASE WHEN ПродажиОбороты.Склад = :выбСкл1 THEN ПродажиОбороты.КоличествоОборот ELSE 0 END) As ПроданоСкл1 ,SUM(CASE WHEN ПродажиОбороты.Склад = :выбСкл2 THEN ПродажиОбороты.КоличествоОборот ELSE 0 END) As ПроданоСкл2 ... // ...х... - это номер склада по списку... ,SUM(CASE WHEN ПродажиОбороты.Склад = :выбСкл(...х...) THEN ПродажиОбороты.КоличествоОборот ELSE 0 END) As ПроданоСкл(...х...) ... |
#56
by Дядя Васька
Не совсем корректно, у тебя в каждой строке только один склад. По условиям задачи вроде как если товар присутствует на обоих складах, то это надо в одной строке вывести. Подобный вариант еще в предложил, Select From Select нужен.
#62
by ЧеловекДуши
Рекомендую вместо периода воспользоваться этой функцией на SQL ФункПР - Это имя твоей фугкции @len1 - Это строка даты, в виде ггггммдд, как по DATE_TIME_IDDOC @len2 - Это папраметр для получения периода На выходе этой функции ты получаешь тип дата |create FUNCTION "+ФункПР+"( @len1 varchar, @len2 int) RETURNS datetime
#66
by Дядя Васька
Да пофик, Продажи с группировкой месяц все равно по одному количеству в месяц выдаст. По смыслу они там вообще не нужны никакие, результат уже сгруппирован, разве что синтаксис такой что требует. Но проверить не на чем.
#70
by Дядя Васька
Да не, это ты не догнал. Я про суммы и говорю. Их по одной на месяц получается, в функции периодика задана. Складывать их не надо. Ему именно такой результат и нужен. С группировкой по сумме или без нее он будет одинаковый.
#71
by Андрей_Андреич
Но методически неверно приучать писать таким образом. Человек же тебе верит...
#73
by Дядя Васька
Методически там вообще GROUP BY не нужен, о чем оговорился :) Правда есть вероятность что нужен синтаксически. А по смыслу в группировке по остальным полям толку столько же, сколько и по числовому в данном случае...
#75
by Дядя Васька
В функции продаже в параметрах уже указан, период Месяц, группировка (Склад,Товар), условия по оным и что в разрезе их нужно взять количество. Дальнейшая группировка просто повторяет то что уже передали в параметрах. Никакой детализации по лишним измерениям она вернуть не должна. Так зачем повторяться? Ничего не меняет же в результатах.
#77
by Дядя Васька
Даже два варианта написал как это сделать :) В Например. Там да, нужна, только в верхнем запросе, а не в том что с функцией.
#78
by Андрей_Андреич
Пора лепить голосовалку - кто больше укуренный :) Автора жалко - запросик-то и правда плевый.
#84
by trad
а на хуа подзапрос? даже не учитывая этого и периода, еще есть как минимум одна грубейшая ошибка.
#88
by viktor_vv
Ну и я встряну :). Это только мне кажется, что :НачДата~ надо заменить на :НачДата , а то за первый день периодв данные не попадут.
#89
by lamme
Кстати .. с утра фантазия .. почти эротического плана возникла .. а есть какая ниб штуковина или механизм .. который брал бы запрос из и легким движением правого пальца левой руки - превращался бы в прямой запрос , например как в ?
#90
by Попытка1С
Вообще есть конструктор 1С++ если что. Он конечно из ничего не сделает, но поможет для начала точно.
#91
by lamme
пользовался. видел. там надо самому делать запрос. я ж про другое ... есть обыкновенный запрос - оппа - готов прямой.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- V7 Запрос по БухСчету (Не бух запрос)
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Прямой запрос и левое соединение - не соединяет :(
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- 8.2 УФ коммандный интерфейс - видимость программно
- Как запретит продажу контрагенту на время. 1с УТ 10.3
- Где в 10-й УТ заполняется таблица в форме отбора?
- 1С 8.2.14.540 и Exchange 2010 SP2
- Какая системная плата лучше AsRock G31M-S или GA-8I945GMH-RH ?
- Перенос данных УПП 1.3 -> БП 2.0
- СКД добавить строку в конец итога. Помогите разобораться
- РМК в УТ 10.3 проблема со сканером ШК
- Как заменить кнопку Сформировать в СКД?
- Управляемое приложение - Как заполнить табличную часть на открытой форме?
- Фоновый обмен УТ 11 - БП 2.0
- Можно ли использовать БП 20 последних релизов в режиме совместимости с 8.1?
- Обновление биоса на матери Asus P5B-MX
- Зачет авансов с разными ставками НДС
- проверить ставку НДС по ОКПО
- УТ 11 ставка НДС
- товарный отчет торг-29: не попадают проведенные документы
- Опубликована база на сервере. Как узнать, какой порт открыть?
- УПП 1.3 Корректировка долга (валюта) проблема переоценки аванса
- Перенос ББУ 7 - > БГУ 8, Поле объекта не обнаружено (МассивКонтрольныеЗначения)