Множественные связи в запросе

1. whiteo 05.10.17 13:10 Сейчас в теме
Всем привет, подскажите как в запросе использовать многократную связь.
Необходимо запросом вытягивать штрихкод по владельцу и характеристикой, на уровне связей между таблицами.
По теме из базы знаний
Найденные решения
10. EVKash 14 05.10.17 15:18 Сейчас в теме
а если без временных таблиц?
ВЫБРАТЬ РАЗЛИЧНЫЕ
	СпрНоменклатура.Код КАК КодНоменклатура,
	СпрНоменклатура.Наименование КАК НаименованиеНоменклатура,
	ХарактеристикиНоменклатуры.Наименование КАК НаименованиеХарактеристики,
	Штрихкоды.Штрихкод КАК Штрихкод,
	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
		ПО ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
		ПО ТоварыНаСкладахОстатки.Номенклатура = ХарактеристикиНоменклатуры.Владелец
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
		ПО ТоварыНаСкладахОстатки.Номенклатура = Штрихкоды.Владелец
ГДЕ
	ТоварыНаСкладахОстатки.Склад = &Склад
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 05.10.17 13:12 Сейчас в теме
выбрать *
Из регистрСведений.Штрихкоды
где Владелец = &владелец и &ХарактеристикаНоменклатуры = &Характеристика
3. whiteo 05.10.17 13:19 Сейчас в теме
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка,
	Номенклатура.Наименование КАК Наименование,
ПОМЕСТИТЬ ВТНоменклатура
ИЗ
	Справочник.Номенклатура КАК Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ХарактеристикиНоменклатуры.Владелец КАК Владелец,
	ХарактеристикиНоменклатуры.Наименование КАК Наименование,
	ХарактеристикиНоменклатуры.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТХарактеристики
ИЗ
	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Штрихкоды.Штрихкод КАК Штрихкод,
	Штрихкоды.Владелец КАК Владелец,
	Штрихкоды.ТипШтрихкода КАК ТипШтрихкода,
	Штрихкоды.Характеристика КАК Характеристика
ПОМЕСТИТЬ ВТШтрикод
ИЗ
	РегистрСведений.Штрихкоды КАК Штрихкоды
Показать

;

Как обойти в таком запросе?
4. whiteo 05.10.17 13:26 Сейчас в теме
я хочу видеть результат по такой схеме

ЛЕВОЕ СОЕДИНЕНИЕ ВТШтрикод КАК ВТШтрикод
ПО ВТНоменклатура.Ссылка = ВТШтрикод.Владелец
ЛЕВОЕ СОЕДИНЕНИЕ ВТШтрикод КАК ВТШтрикод
ПО ВТХарактеристики .Ссылка = ВТШтрикод.Характеристика
5. nvv1970 05.10.17 13:39 Сейчас в теме
(4)
Выбрать Нужные, Поля
ИЗ
тНоменклатура
Левое Соединение тХарактеристика
По Н = Х
Левое Соединение тШК
По Н = ШК и Х = ШК

Это имели ввиду??

Чем (2) не устроил?
6. whiteo 05.10.17 13:43 Сейчас в теме
(5) Да, у меня сейчас связь есть между номенклатурой и характеристикой, но не могу сообразить как сделать связь владельца и характеристикой между штрихом, так же учесть то, что характеристики может и не быть.
7. whiteo 05.10.17 13:48 Сейчас в теме
Запрос целиком

ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка,
	Номенклатура.Наименование КАК Наименование,
	Номенклатура.Код КАК Код,
	Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	Номенклатура.СтавкаНДС КАК СтавкаНДС
ПОМЕСТИТЬ ВТНоменклатура
ИЗ
	Справочник.Номенклатура КАК Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ХарактеристикиНоменклатуры.Владелец КАК Владелец,
	ХарактеристикиНоменклатуры.Наименование КАК Наименование,
	ХарактеристикиНоменклатуры.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТХарактеристики
ИЗ
	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Штрихкоды.Штрихкод КАК Штрихкод,
	Штрихкоды.Владелец КАК Владелец,
	Штрихкоды.ТипШтрихкода КАК ТипШтрихкода,
	Штрихкоды.Характеристика КАК Характеристика
ПОМЕСТИТЬ ВТШтрикод
ИЗ
	РегистрСведений.Штрихкоды КАК Штрихкоды
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ВТОстаткиНоменклатуры
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ГДЕ
	ТоварыНаСкладахОстатки.Склад = &Склад
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ВТНоменклатура.Код КАК КодНоменклатура,
	ВТНоменклатура.Наименование КАК НаименованиеНоменклатура,
	ВТХарактеристики.Наименование КАК НаименованиеХарактеристики,
	ВТШтрикод.Штрихкод КАК Штрихкод,
	ВТОстаткиНоменклатуры.КоличествоОстаток КАК Остаток
ИЗ
	ВТОстаткиНоменклатуры КАК ВТОстаткиНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ ВТНоменклатура КАК ВТНоменклатура
			ЛЕВОЕ СОЕДИНЕНИЕ ВТХарактеристики КАК ВТХарактеристики
			ПО ВТНоменклатура.Ссылка = ВТХарактеристики.Владелец
		        ЛЕВОЕ СОЕДИНЕНИЕ ВТШтрикод КАК ВТШтрикод
	         	ПО ВТНоменклатура.Ссылка = ВТШтрикод.Владелец
	ПО ВТОстаткиНоменклатуры.Номенклатура = ВТНоменклатура.Ссылка
Показать
8. EVKash 14 05.10.17 14:18 Сейчас в теме
вот так наверно все-таки
ЛЕВОЕ СОЕДИНЕНИЕ ВТНоменклатура КАК ВТНоменклатура
ПО ВТОстаткиНоменклатуры.Номенклатура = ВТНоменклатура.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ ВТХарактеристики КАК ВТХарактеристики
ПО ВТОстаткиНоменклатуры.Номенклатура = ВТХарактеристики.Владелец
ЛЕВОЕ СОЕДИНЕНИЕ ВТШтрикод КАК ВТШтрикод
ПО ВТОстаткиНоменклатуры.Номенклатура = ВТШтрикод.Владелец

что не так-то в запросе?
9. whiteo 05.10.17 15:00 Сейчас в теме
(8)Воспользовался вашим вариантом, SQL сервер крашится, postgreSQL говорит out of memory
10. EVKash 14 05.10.17 15:18 Сейчас в теме
а если без временных таблиц?
ВЫБРАТЬ РАЗЛИЧНЫЕ
	СпрНоменклатура.Код КАК КодНоменклатура,
	СпрНоменклатура.Наименование КАК НаименованиеНоменклатура,
	ХарактеристикиНоменклатуры.Наименование КАК НаименованиеХарактеристики,
	Штрихкоды.Штрихкод КАК Штрихкод,
	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
		ПО ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
		ПО ТоварыНаСкладахОстатки.Номенклатура = ХарактеристикиНоменклатуры.Владелец
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
		ПО ТоварыНаСкладахОстатки.Номенклатура = Штрихкоды.Владелец
ГДЕ
	ТоварыНаСкладахОстатки.Склад = &Склад
Показать
11. whiteo 05.10.17 15:55 Сейчас в теме
(10) Уже разбил запрос на несколько частей. спасибо
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот