Как-то можно в левом соединении выбрать только первую связь?
На примере этого, когда коды из источника задублированы
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| МАКСИМУМ(Партнеры.Ссылка) КАК Ссылка,
| Партнеры.ИсточникКод КАК ИсточникКод
| ИЗ
| Справочник.Партнеры КАК Партнеры
|
| СГРУППИРОВАТЬ ПО
| Партнеры.ИсточникКод) КАК Партнеры
Но в результате такого левого соединения все равно добавляются две записи.
Есть какие-то варианты без использования временных таблиц?
(1) Вы функцию максимум перенесите в правую часть запроса. в тот к которому делаете левое соединение. Тогда взлетит. Или выбирайте в основном запросе "различные" если в результате дублирования строки результата идентичны.
можно в левом соединении выбрать только первую связь?
Нельзя просто взять и убрать. Соединение на то и левое, что из левой таблицы попадут все записи, а из правой - все записи, подпадающие под условие связи. Наша задача - правильно описать связь.
Коллеги извиняюсь конечно... но как Вам такая чушь то приходит на ум?
Вложенные запросы уже лет 200 никто не использует.
Вам нужно вынести вложенный запрос во временную таблицу.
Функция МАКСИМУМ примененная к ссылке вообще никакого смысла не имеет. т.е. ничего не произойдёт.
Если нужно убрать дубли то во временной таблице нужно ВЫБРАТЬ РАЗЛИЧНЫЕ.
Ну и собственно чтоб Вам помогли надо нормально задачу описать.
(5) Каким образом Выбрать различные уберут дубли по ссылкам? Они выберут эти же самые дубли. По поводу вложенных запросов я написал что в примере не лучший вариант. В итоге касаемо вопроса есть что предложить конкретное или нет?
(5) Ошибаетесь, коллега. Не всегда целесообразно использовать временные таблицы. Временные таблица - это увеличенный расход памяти, особенно критично при помещении во временную таблицу больших таблиц. А соответственно уменьшение производительности, увеличенное время выполнения тяжелых запросов. Временные таблицы можно использовать, но не без меры. В случае тяжелых запросов иногда целесообразнее использовать вложенные запросы
В этом подзапросе колонка ИсточникКод имеет только уникальные значения. Задваиваются записи или из-за условия ПО, или из-за другого соединения. Приведите полный тест запроса.
(9) Я знаю стандарты разработки, специалиста по платформе получил. Про временные таблицы информацию не сам придумал, а подчерпнул на курсах подготовки к 1с: Эксперт. то что на ИТС описаны данные рекомендации преподаватель и автор курса упомянул также. Я не призывал отказываться от временных таблиц, а более обдуманно подходить к их использованию.
И, кстати, в указанной вами статье рекомендации про соединение вложенных запросов с виртуальными таблицами. то что это плохо - бесспорно, но не относится к теме нашего с вами спора
(10) Андрей, у меня нет интереса ни с кем спорить. Убеждать кого-либо также не испытываю интереса. К сожалению качество курсов сейчас крайне низкое! Если работая в Мск будете использовать вложенные запросы, у Вас явно будут трудности. Успехов.
Хорошо давай аргументированно.
1. Вам на курсах говорили, что во вложенных запросах не должно быть больших физических таблиц?
2. Вам там разъяснили, что если во вложенном запросе более 1000 строк (даже если это временная таблица), то стоит отказаться от использования вложенного запроса?
3. Да если таблица маленькая и используется 1 раз в текущем запросе, то помещать её во временную нет смысла. Ибо уйдёт врем сначала а её помещение в память, потом на чтение и собственно удалить её тоже надо время.
Мне всё равно кто в каком рейтинге на каком месте. Если вдруг он не рассказал на своём курсе написанное, то курс низкого качества.
Все эти рейтинги это просто рекламная лапша, на которую к сожалению до сих пор ведутся. Ко мне после вот таких курсов пачками идут люди на индивидуальное обучение и они не знают даже в чём разница между иерархией групп и иерархией элементов, не понимают почему флаг ЭтоГруппа недоступен во втором случае.
И Вам рекомендую не обращать на это внимания.
Дальше писать не будут в эту ветку. Успехов.
(13)
1. Не было такой информации. Интересно, откуда у вас она. Речь на курсах шла о производительности в высоконагруженных системах и запросах в миллионы строк.
2. опять же, в запросах к небольшому количеству данных (до 5000 тыс строк) вы не особо увидите прирост в производительности, но при использовании временных таблиц вы еще увеличите расход физических ресурсов сервера, что в высоконагруженных системах может быть достаточно критично
3. согласен
4. Советую вам тоже пройти данный курс, потому как это даст возможность взглянуть на 1с с другой стороны. До этих курсов я бы с вами согласился на 100% - не реклама, а лишь собственное мнение.
По поводу рекламной лапши - рейтинг составляется по количеству внедренных крупных проектов. Крупные - это системы с одновременной работой более 1000 человек в одной базе.
Действительно, эта ветка не лучшее место. Было бы логичнее создать новую тему.
PS. На такие курсы люди, не знающие разницу между иерархией групп и иерархией элементов не ходят :-) Удачи
(14) ребята, чем все закончилось:?
как отобрать Номенклатуру и Остатки поставщика из спр НомеклатураПоставщиков, нужно в Динамическом списке ФормаСписка Номенклатура отразить Остатки поставщика
Пример когда нужно в списке/журнале документов показать наличие подчиненных документов
ВЫБРАТЬ РАЗЛИЧНЫЕ
ДокументИТ_ЗаявкаНаТранспортировку.Ссылка КАК Ссылка,
МАКСИМУМ(ЕСТЬNULL(ИТ_ТранспортировкаМаршруты.Ссылка.Проведен, ЛОЖЬ)) КАК ЕстьТранспортировка
ИЗ
Документ.ИТ_ЗаявкаНаТранспортировку КАК ДокументИТ_ЗаявкаНаТранспортировку
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИТ_Транспортировка.Маршруты КАК ИТ_ТранспортировкаМаршруты
ПО ДокументИТ_ЗаявкаНаТранспортировку.Ссылка = ИТ_ТранспортировкаМаршруты.ДокументЗаявки
СГРУППИРОВАТЬ ПО
ДокументИТ_ЗаявкаНаТранспортировку.Ссылка,