Полное соединение в запросе не работает. #714555


#0 by Koliaff
ВЫБРАТЬ     ИтоговаяТаблица.Менеджер,         0,         0,         NULL     ИЗ ================================================ Доброго времени суток. Хочу вывести количество купленного товара контрагентами в разрезе менеджеров. Сделать это так, чтобы выводились все контрагенты, а не только те, которые покупали товар. В результате запроса я получаю таблицу, в которой нет контрагентов с пустым количеством и суммой. Что я не так делаю ?
#1 by Borteg
контрагенты левое соединение регистр продаж
#2 by f_vadim
Я ослеп? Я не вижу тут соединения.
#3 by anaed
А где полное соединение?
#4 by Koliaff
Вернее не так задал вопрос. Когда фильтр по номенклатуре не ставишь - все выводится, если поставил, то выводятся контрагенты только те, по которым были продажи.
#5 by Fram
Соединение с объединением путать, конечно, нехорошо, но запрос должен работать.
#6 by Fram
добавь в фильтр ИЛИ Номенклатура есть NULL
#7 by Koliaff
(Borteg) Делал и левым соединением контрагенты, все равно при фильтре по "Номенклатура" все контрагенты по которым не было продаж пропадают из отчета
#8 by mikecool
надо же подумать, что номенклатура есть только в записях продаж
#9 by France
убойный запрос... объединять продажи и справочник контрагентов...
#10 by anaed
запрос к справочнику контрагентов, который соединяется левым с выборкой по продажам, в которой накладывается фильтр по номенклатуре. Только зачем такое извращение?
#11 by Koliaff
(Fram) добавь в фильтр ИЛИ Номенклатура есть NULL Растолкуй глупому ....
#12 by France
левосоединяй контрагентов с регистром продаж...
#13 by Koliaff
(France) С самого начала было левое соединение - не помогает. Попробуй сам ...
#14 by f_vadim
#15 by mikecool
да че там, пусть пробует сам!
#16 by France
Контрагенты.Ссылка,
#17 by catena
А что должно выводиться у контрагентов, у которых не было продаж с установленным фильтром по номенклатуре? Физический смысл выборки какой?
#18 by France
попробовал))
#19 by Fram
а че непонятно? скопируй результат без фильтра в эксель и поставь там фильтр. может так станет понятно
#20 by hhhh
если контрагенты у вас без продаж, то у них номенклатура равна NULL. Вот по-нормальному на бумажке выпишите значение NULL и значение вашего фильтра и сравните их. Проверьте попадает значение NULL в ваш фильтр.
#21 by France
да фильтры ему пока не помогут.. у него запрос вообще не в тему требований..
#22 by Koliaff
(France) Сейчас пробую опять левым соединением. У меня запрос чуть сложнее, чем в . Сейчас попробую отпишусь.
#23 by France
уже боюсь, что докажешь неработоспособность моего творения00..
#24 by Fram
ну и чем результат твоего запроса будет отличаться от
#25 by France
ну, хотя бы тем, что не нужно условие на нул для номенклатуры ставить.. зы.. ну и, получается, привычностью для меня  левосоединения))
#26 by France
блин...возвращаю запись)) практически ничем кроме того, что мне левосовединение оказалось удобнее))
#27 by Koliaff
ВЫБРАТЬ     ИтоговаяТаблица.Контрагент,     (ВЫБРАТЬ                     КОГДА Выставка.Контрагент ЕСТЬ NULL                 ВЫБОР                     КОГДА Выставка.КонтрагентОсновнойМенеджерПокупателя ЕСТЬ NULL                 ВЫБОР                     КОГДА Выставка.Номенклатура ЕСТЬ NULL                         КОГДА Выставка.КоличествоОборот ЕСТЬ NULL                     КОГДА Выставка.Контрагент ЕСТЬ NULL                 ВЫБОР                     КОГДА Выставка.Номенклатура ЕСТЬ NULL                 ВЫБОР                     КОГДА Выставка.КонтрагентОсновнойМенеджерПокупателя ЕСТЬ NULL                         ТОГДА НеВыстаска.КонтрагентОсновнойМенеджерПокупателя
#28 by Koliaff
ВОт исходный мой запрос. Он не работает, когда выбирается фильтр по номенклатуре... Не выводит пустых контрагентов. Хотя без фильтра по номенклатуре пустые контрагенты (без продаж) есть. Так что жду ответа от (Fram) : "добавь в фильтр ИЛИ Номенклатура есть NULL" Растолкуй пожалуйста где это условие поставить ...
#29 by AlexITGround
как это ничем не будет отличаться, что вы курите - оставьте попробовать
#30 by Fram
Фильтр накладывается в построителе или СКД?.. Тогда мое предложение не катит. Ты так и не понял почему не выводятся пустые?
#31 by France
ну, давай, и тебя послушаем.. запрос в 0, и мой левосоединенный должен вернуть один и тот же результат..
#32 by Fram
+ хотя почему не катит.. катит
#33 by anaed
Фильтруй номенклатуру через параметр в выборке по продажам, а не отбором по итоговой выборке.
#34 by Fram
+ загнался совсем.. все таки в пользовательском режиме построителя и СКД не катит ))
#35 by France
давай, тебе тоже пора определяться))..
#36 by AlexITGround
читаем внимательно "ОБЪЕДИНИТЬ ВСЕ"
#37 by AlexITGround
+ 36 левым соединением избегаем дублей кстати, я не заметил где ограничение по номенклатуре в запросе из 27
#38 by AlexITGround
соглашусь с человеком, только вот в упор не вижу ограничения в запросе
#39 by France
это ничего не меняет.. я тоже вначале читал "ОБЪЕДИНИТЬ ВСЕ"..   первая часть запроса вернет всех, у кого были продажи.. вторая часть просто всех контрагентов. и, самый верхний уровень выборки свернет все аккуратненько. Сработает как левосоединение.. без "Или НУЛЛ" и 27 не взлетит, если ставить  в Где..
#40 by catena
Как вариант (если уж так хочется при любом фильтре все равно видеть всех контрагентов без продаж) - отдельно собирать продажи с отборами построителя, отдельно собирать контрагентов без продаж, потом объединять и в результирующем объединении дать для построителя другой псевдоним Номенклатуре, чтоб не накладывал туда свой отбор.
#41 by AlexITGround
как свернет аккуратненько, если в одной СправочникСсылка.Номенклатура, а во второй NULL?
#42 by Fram
Это не помешает запросу сгруппировать по этому полю
#43 by Starik113
40 Прав
#44 by France
будет лишняя пустая запись Контрагента с номенклатура нулл по контрагентам с ненулевыми продажами. остальные данные совпадут.. на итоговый суммовой результат это не повлияет.
#45 by AlexITGround
естественно не помешает и уже результаты будут разные
#46 by Fram
почему разные?
#47 by France
данные по продажам будут одинаковые..
#48 by Fram
да все будет одинаковое, исключая ИТОГИ
#49 by AlexITGround
сорри, ребят, конечно же :)
#50 by Fram
Разве что, если в продажах есть пустой контрагент, то он в случае не попадет в результат
#51 by AlexITGround
какой контрагент?
#52 by AlexITGround
битая ссылка что ли...?
#53 by France
я свои голословные заявления заранее проверил)) лишняя запись есть, но сейчас не очь хочется разбираться зачем же только битая сслыка.. дорвался кто нибудь до корректировки записей регистра..
#54 by Fram
откуда лишняя запись?
#55 by France
допустим, что по контрагенту есть продажи. контрагент попал в итоговую выборку по регистру продаж, но при этом в объединении будет запись Контрагент с Номенклатурой НУЛЛ... онный и попадает.. Номенклатура и НУЛЛ не свернуться)
#56 by AlexITGround
"Контрагент с Номенклатурой НУЛЛ" т.е. как при объединении вдруг в обоих таблицах вырисуется NULL без к-л соединения? не понял, поясни плиз мысль свою
#57 by France
не в обоих. в первой таблице будет "КонтрагентноменклатураКол-во" - это обороты регистра продаж во второй  "КонтрагентНУЛЛ - в любом случае. результат группировки записей по КонтрагентНоменклатура - 2 записи..
#58 by AlexITGround
именно об этом я и думал, когда вел разговор, но в обоих запросах и в и в результат будет один и тот же, в конце свернется все. Аль не так?
#59 by France
не свернулись у меня... не стал разбирать, но кажись
#60 by AlexITGround
у меня разница получилась аж в 2к записей, ну что ж буду смотреть, ради интереса...неужели я в 49 зря сдался :) отпишусь
#61 by France
у тебя будут записи с пустым контрагентом, записи с группами контрагентов))
#62 by France
на группы глянь))
#63 by AlexITGround
совершенно верно, необходимо добавлять условие на родителя
#64 by France
после этого полностью совпали, или есть "лишьняя" запись??
#65 by France
лишьняя - блин, солфасол получилось..))
#66 by Fram
понял уже.. посыпаю голову пеплом ))
#67 by Fram
надо учится отстаивать свою точку зрения )) особенно, когда ты прав
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С