|
Запрос Левое соединение | ☑ | ||
---|---|---|---|---|
0
KonstantinK90
06.09.16
✎
06:57
|
Всем привет помогите разобраться с запросом! мне нужно запросом. Задача такая: Необходимо разработать отчет по ежемесячному приросту новых торговых точек(Контрагентов), купивших продукцию Супротек.
Торговая точка считается новой с даты первой отгрузки. делаю вот так чет е получается ВЫБРАТЬ РАЗЛИЧНЫЕ ВложВзаиморасчеты.Регистратор КАК Регистратор, ВложВзаиморасчеты.Контрагент КАК Контрагент, СупротекНоменклатура.Номенклатура ИЗ (ВЫБРАТЬ ПродажиОбороты.Регистратор.Ссылка КАК РегистраторСсылка, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК СупротекНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОбороты.Регистратор КАК Регистратор, ВзаиморасчетыСКонтрагентамиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &НачалоПериода, Регистратор, ) КАК ВзаиморасчетыСКонтрагентамиОбороты) КАК ВложВзаиморасчеты ПО СупротекНоменклатура.РегистраторСсылка = ВложВзаиморасчеты.Регистратор И СупротекНоменклатура.Контрагент = ВложВзаиморасчеты.Контрагент УПОРЯДОЧИТЬ ПО Контрагент |
|||
1
KonstantinK90
06.09.16
✎
06:59
|
Как правильно проверить у нас есть некий период как узнать были ли продажи до этого периода если нет тогда считаем контрагента новым
|
|||
2
Jonny_Khomich
06.09.16
✎
07:12
|
сделай реквизит или свойство у контрагента, дата первой покупки, заполняй его при проведении документа и ориентируйся на него. на прошлой работе так было
|
|||
3
KonstantinK90
06.09.16
✎
07:15
|
на будущее как вармант а сейчас как быть?
|
|||
4
AlexToo
06.09.16
✎
07:15
|
(1) я б наверно, заморочился и выбрал бы сначала из регистра продаж контрагентов и период регистрации, с группировкой по контрагенту, что бы по каждому было видно когда была первая покупка, а потом обходя этот результат проверял, попадет ли дата первой покупки в заданный период или нет.
|
|||
5
KonstantinK90
06.09.16
✎
07:18
|
ну вот выбрал я продажи по конкретной номенклатуре
ВЫБРАТЬ РАЗЛИЧНЫЕ СупротекНоменклатура.РегистраторСсылка, СупротекНоменклатура.Контрагент ИЗ (ВЫБРАТЬ ПродажиОбороты.Регистратор.Ссылка КАК РегистраторСсылка, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК СупротекНоменклатура |
|||
6
KonstantinK90
06.09.16
✎
07:19
|
а как проверить запросом есть ли продажи по этим контрагентам
|
|||
7
KonstantinK90
06.09.16
✎
07:20
|
за предыдущие периоды
|
|||
8
AlexToo
06.09.16
✎
07:26
|
(7) ты на СКД всё это делаешь одним запросом хочешь всё сделать?
|
|||
9
KonstantinK90
06.09.16
✎
07:26
|
да
|
|||
10
AlexToo
06.09.16
✎
07:33
|
(9) попробуй вложенным запросом к своему выбрать из продаж контрагента и период с отбором по дате меньше чем начало твоего периода и потом по контрагенту соединять вложенный запрос с твоим результатом по супротеку, если во вложенном запросе есть данные значит есть продажи за предыдущий период.
|
|||
11
KonstantinK90
06.09.16
✎
07:43
|
чет не получается по смотри может я не правильно че делаю
ВЫБРАТЬ РАЗЛИЧНЫЕ СупротекНоменклатура.РегистраторСсылка, ВложенныйПредПериод.Номенклатура, СупротекНоменклатура.Контрагент ИЗ (ВЫБРАТЬ ПродажиОбороты.Регистратор.Ссылка КАК РегистраторСсылка, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК СупротекНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Контрагент КАК Контрагент ИЗ РегистрНакопления.Продажи.Обороты(, &НачалоПериода, Регистратор, ) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйПредПериод ПО СупротекНоменклатура.Контрагент = ВложенныйПредПериод.Контрагент |
|||
12
KonstantinK90
06.09.16
✎
07:45
|
блин уже все утро сижу ни как не получаетсмя
|
|||
13
azt-yur
06.09.16
✎
07:57
|
В запросе делай группировки по Контрагенту и ресурс Минимум(Период) и условие на ресурс между начПериод и конПериод
|
|||
14
azt-yur
06.09.16
✎
07:58
|
+ (13) и без указания периода в таблице оборотов
|
|||
15
azt-yur
06.09.16
✎
08:01
|
Хотя хрень будет если оборотов в регистре много. Будет тормозить и память жрать. Лучше как в (2) сделать по подписке на событие
|
|||
16
AlexToo
06.09.16
✎
08:14
|
(11) получается он у тебя так выберет из второй таблицы, либо записи если есть предыдущие продажи, либо Null если их нет. Поэтому надо ещё условие на проверку, что тебе нужны записи именно с Null вместо контрагента. Ещё отбора по номенклатуре че-то совсем не увидел, ты вроде говорил, по супротеку нужна.
И да если оборотов в регистре много будет притормаживать. Можт правда сделать реквизит у контрагента, и обратоботкой проставить даты? |
|||
17
FIXXXL
06.09.16
✎
08:18
|
(3) сейчас построить таблицу "первой покупки" по клиенту, обойти справочник и проставить дату
|
|||
18
mkalimulin
06.09.16
✎
08:46
|
(0) Список новых контрагентов за период:
ВЫБРАТЬ Контрагент ИЗ РегистрНакопления.Продажи СГРУППИРОВАТЬ ПО Контрагент ИМЕЮЩИЕ МИНИМУМ(Период) между &НачалоПериода И &КонецПериода Вам надо тренироваться. http://catalog.mista.ru/public/533557/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |