Имя: Пароль:
1C
1С v8
Запрос объемов продаж по всей номенклатуре, в т.ч. нулевых
0 nemoxp
 
15.02.14
15:05
Конфигурация УТ 10.3
Дано: регистр накопления ПРОДАЖИ (обороты), и спровочник НОМЕНКЛАТУРА.
Нужно так написать запрос, чтобы получить продажи за период (количество и сумму) по всей номенклатуре (даже которая не продавалась) в разрезе контрагента. Загвоздка в том, что данные по номенклатуре, которая не продавалась контрагенту в данном периоде, отсутствует в регистре ПРОДАЖИ. Т.е. по каждому контрагенту должен быть список всей номенклатуры, если были продажи (есть информация в регистре), то должен быть соответствующий объем, если нет, то "0".
Вопрос, как написать запрос?
Заранее благодарю.
1 mehfk
 
15.02.14
15:07
SELECT
...
FTOM
Справоник.Номенклатура
...
LEFT JOIN

Регистр.Продажи.Обороты(...)

ON
...
2 mehfk
 
15.02.14
15:11
"должен быть список всей номенклатуры, если были продажи (есть информация в регистре)"

Извиняюсь

ТОгда

SELECT
Контрагент,
Номенклатура
INTO ВТ_ПродажиНоменклатура_Контрагент
FROM
Регистр.Продажи

;

SELECT

...


FROM
ВТ_ПродажиНоменклатура_Контрагент
LEFT JOIN
Регистр.Продажи.Обороты(...) AS РегПОбороты

ON
ВТ_ПродажиНоменклатура_Контрагент.Контрагент = РегПОбороты.Контрагент И ПродажиНоменклатура_Контрагент.Номенклатура = РегПОбороты.Номенклатура
3 mistеr
 
15.02.14
15:12
ЛЕВОЕ СОЕДИНЕНИЕ
4 mistеr
 
15.02.14
15:12
(2) ВТ зачем?
5 nemoxp
 
15.02.14
16:29
не приведу сейчас свой запрос. смысл такой, одним запросом я выбирал всю номенклатуру из справочника, вторым запросом выбирал обороты по контрагенту и после делал левое соединение по этим запросом по номенклатуре. результат - полный список номенклатуры, где есть обороты, есть контрагент, вся остальная номенклатура не привязака к контрагенту (ведь по ней нет оборотов...

А нужно получить весь список номенклатуры столько раз, сколько контрагентов. И если в регистре по это номенклатуре нет оборотов, проставить "0".
6 nemoxp
 
15.02.14
16:37
Вот как учесть в запросе такое условие:

"А нужно получить весь список номенклатуры столько раз, сколько контрагентов. И если в регистре по это номенклатуре нет оборотов, проставить "0"."

например 3 номенклатуры и 2 контрагента, результат запроса:
ном1 | контр1 | 0 (нет оборотов в регистре)
ном2 | контр1 | 2
ном3 | контр1 | 5
ном1 | контр2 | 0 (нет оборотов в регистре)
ном2 | контр2 | 0 (нет оборотов в регистре)
ном3 | контр2 | 3
7 mehfk
 
15.02.14
18:45
(4) Условно из головы запрос набросал. Вт не нужна в данном случае.

(6) Матрица контрагенты-номенклатура на СКД будет стоить 5000 рублей.
8 mehfk
 
15.02.14
18:47
Если успеете до окончания выходных - 2500 р.