Имя: Пароль:
1C
1С v8
Где ошибка в запросе?
,
0 Dasty
 
22.03.12
10:36
Юзаю УПП с CRM. Делаю запрос:

ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДоговорыКонтрагентов.Владелец КАК Контрагент
ПОМЕСТИТЬ Контрагенты
ИЗ
   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
   ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
   И ДоговорыКонтрагентов.ОсновнойПроект <> НЕОПРЕДЕЛЕНО
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Продажи.Контрагент,
   Продажи.КоличествоПродаж
ПОМЕСТИТЬ ПродажиЗаТриМесяца
ИЗ
   (ВЫБРАТЬ РАЗЛИЧНЫЕ
       ПродажиОбороты.Контрагент КАК Контрагент,
       КОЛИЧЕСТВО(ПродажиОбороты.ДокументПродажи) КАК КоличествоПродаж
   ИЗ
       РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -3), ДЕНЬ), КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), , ) КАК ПродажиОбороты
   
   СГРУППИРОВАТЬ ПО
       ПродажиОбороты.Контрагент) КАК Продажи
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   Событие.Контрагент
ПОМЕСТИТЬ События
ИЗ
   Документ.Событие КАК Событие
ГДЕ
   Событие.Проведен
   И Событие.Дата МЕЖДУ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -1), ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   CRM_КоммерческоеПредложение.Контрагент
ИЗ
   Документ.CRM_КоммерческоеПредложение КАК CRM_КоммерческоеПредложение
ГДЕ
   CRM_КоммерческоеПредложение.Проведен
   И CRM_КоммерческоеПредложение.Дата МЕЖДУ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -1), ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   "Новый" КАК СтатусКонтрагента,
   Контрагенты.Контрагент
ПОМЕСТИТЬ Новые
ИЗ
   Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ ВсеПродажи КАК ВсеПродажи
       ПО Контрагенты.Контрагент = ВсеПродажи.Контрагент,
   События КАК События
ГДЕ
   ВсеПродажи.КоличествоПродаж = 1
   И Контрагенты.Контрагент В (События.Контрагент)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   "Постоянный" КАК СтатусКонтрагента,
   Контрагенты.Контрагент
ПОМЕСТИТЬ Постоянные
ИЗ
   Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ ПродажиЗаТриМесяца КАК ПродажиЗаТриМесяца
       ПО Контрагенты.Контрагент = ПродажиЗаТриМесяца.Контрагент,
   События КАК События
ГДЕ
   Контрагенты.Контрагент В (События.Контрагент)
   И ПродажиЗаТриМесяца.КоличествоПродаж > 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   "Забытый" КАК СтатусКонтрагента,
   Контрагенты.Контрагент
ИЗ
   Контрагенты КАК Контрагенты,
   События КАК События
ГДЕ
   НЕ Контрагенты.Контрагент В (События.Контрагент)

"Новые" и "Постоянные" отрабатывают нормально, а последний пакет дает
большую кучу задвоений контрагентов, причем включая тех, кто уже
попал в "Постоянные". Во временных таблицах задвоений нет. Подскажите, где я ошибаюсь?
1 Fragster
 
гуру
22.03.12
10:37
(0) не знаешь, как работают запросы
2 Нуф-Нуф
 
22.03.12
10:37
юзать временные и вложенные... батенька знает толк в извращениях.
именно поэтому сам не в состоянии отладить запрос и лезешь на форум за помощью
3 Fragster
 
гуру
22.03.12
10:37
и что такое "соединение таблиц" или join
4 Ненавижу 1С
 
гуру
22.03.12
10:39
ВЫБРАТЬ
   "Забытый" КАК СтатусКонтрагента,
   Контрагенты.Контрагент
ИЗ
   Контрагенты КАК Контрагенты
ГДЕ
  НЕ Контрагенты.Контрагент В (ВЫБРАТЬ События.Контрагент ИЗ События КАК События)
5 badboychik
 
22.03.12
10:40
ИЗ
   Контрагенты КАК Контрагенты,
   События КАК События

декартово произведение детектед )
6 Dasty
 
22.03.12
10:41
(4) (5) Спасибо. Понял.
7 Волесвет
 
22.03.12
10:46
не в запросе, а в изначально поставленной задаче, но всем как обычно пофиг
8 Dasty
 
22.03.12
10:49
(7) А поподробнее можно?
9 Волесвет
 
22.03.12
11:01
(8) конечно можно
есть 2 пути -
сказать что бы мышей ловили а не отчеты втыкали
а второй создание более гибкого инструмента для аналитики ибо это "однодневка"
10 ptrtss
 
22.03.12
11:04
И еще


   ИЗ
       РегистрНакопления.Продажи.Обороты(, КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), , ) КАК ПродажиОбороты,
       Контрагенты КАК Контрагенты
Независимо от того, куда вы едете — это в гору и против ветра!