Схлопнуть пустые строки при формировании запроса

1. user1004898 28 08.05.20 13:46 Сейчас в теме
Как можно еще перепистать запрос, чтобы если по двум таблицам есть сопадения, чтобы они схлопывались.
Конфа ЕРП.
Запрос таков:
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Номенклатура,
	NULL КАК Штрихкод,
	УпаковкиЕдиницыИзмерения.Ссылка КАК Упаковка,
	УпаковкиЕдиницыИзмерения.Типоразмер КАК ТипоразмерУпаковки
ИЗ
	Справочник.Номенклатура КАК Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
		ПО Номенклатура.Ссылка = УпаковкиЕдиницыИзмерения.Владелец

СГРУППИРОВАТЬ ПО
	Номенклатура.Ссылка,
	УпаковкиЕдиницыИзмерения.Ссылка,
	УпаковкиЕдиницыИзмерения.Типоразмер

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

ВЫБРАТЬ
	ШтрихкодыНоменклатуры.Номенклатура,
	ШтрихкодыНоменклатуры.Штрихкод,
	ШтрихкодыНоменклатуры.Упаковка.Ссылка,
	ШтрихкодыНоменклатуры.Упаковка.Типоразмер
ИЗ
	РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
		ПО ШтрихкодыНоменклатуры.Упаковка = УпаковкиЕдиницыИзмерения.Ссылка
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. ZergKRSK 129 08.05.20 16:11 Сейчас в теме
(1) на картинке нет ни одной повторяющейся строки.
9. user1004898 28 08.05.20 16:19 Сейчас в теме
(8)
значения в 3 и 4 колонке повторяющиеся
10. ZergKRSK 129 08.05.20 16:21 Сейчас в теме
(9) в целом ПО СТРОКЕ нет повторяющихся записей.
11. user1004898 28 08.05.20 16:24 Сейчас в теме
(10)
не явно, что не правильно записан запрос.
по идее если запсиь в регистре существует: номеклатура - штрихкол - упаковка, то они должни схлопнуться с анлогичной записью по таблице: номеклатура - упаковка.
Типоразмер - это вторестепенные колонки.
12. ZergKRSK 129 08.05.20 16:26 Сейчас в теме
(11)
Типоразмер - это вторестепенные колонки.

все колонки по одной строке выборки одинаковые по важности.
13. user1004898 28 08.05.20 16:32 Сейчас в теме
(12)
ладно, если я не хочу по ним (типоразмерам) делать связи, но они должны буть в таблице - как сделать?
14. ZergKRSK 129 08.05.20 16:34 Сейчас в теме
(13)
ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура,
    ШтрихкодыНоменклатуры.Штрихкод,
    ШтрихкодыНоменклатуры.Упаковка.Ссылка,
    ШтрихкодыНоменклатуры.Упаковка.Типоразмер
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
        ПО ШтрихкодыНоменклатуры.Упаковка = УпаковкиЕдиницыИзмерения.Ссылка
Показать


для чего здесь левое соединение которое не используется?
15. user1004898 28 08.05.20 16:49 Сейчас в теме
(14)
да, можно без этой связи, но тем не менее это не спасает ситуацию.
16. ZergKRSK 129 08.05.20 16:52 Сейчас в теме
(13) очевидно, получить типоразмер в самом конце - в самой последней выборке. Т.е. сначала делаете нужную выборку без типоразмера и помещаете её во временную таблицу, а из выборки по временной таблице уже получить типоразмер.
17. nomad_irk 72 08.05.20 17:44 Сейчас в теме
(1)Что в вашем понимании "схлопывание строк"?

Вы можете в экселе пример накидать: таблица 1, таблица 2, результат?
18. user1004898 28 08.05.20 17:56 Сейчас в теме
(17)
Нечто подобное так
Прикрепленные файлы:
19. nomad_irk 72 08.05.20 18:08 Сейчас в теме
(18) В таком случае выбирайте номенклатуру и ее единицу измерения из РС и Справочника в одну временную таблицу.
Далее к этой таблицы делайте левое соединение ШК.

Что-то вроде такого:

Выбрать
СпрНоменклатура.Ссылка КАК Номенклатура,
ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения
ПОМЕСТИТЬ ВТ_Номенклатура
Из Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК ЕдиницыИзмерения
ПО СпрНоменклатура.Ссылка = ЕдиницыИзмерения.Владелец.

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура,
    ШтрихкодыНоменклатуры.Упаковка
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
;

ВЫбрать
ВТНомеклатура.Номенклатура, 
ВТНоменклатура.Упаковка, 
ШтрихкодыНоменклатуры.ШтрихКод
ИЗ 
ВТ_Номенклатура КАК ВтНоменклатура
ЛЕВОЕ СОединение РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
ПО ВтНоменклатура.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
И ВтНоменклатура.ЕдиницаИзмерения = ШтрихкодыНоменклатуры.Упаковка
Показать
20. user1004898 28 08.05.20 18:11 Сейчас в теме
(19)
последнее левое соеднинение с чем?
21. nomad_irk 72 08.05.20 18:15 Сейчас в теме
22. user1004898 28 08.05.20 18:31 Сейчас в теме
(21)
получаю что-то подобное такому
Прикрепленные файлы:
23. nomad_irk 72 08.05.20 19:08 Сейчас в теме
(22)Вот тренажер:

ВЫБРАТЬ
	"Кефир" КАК Номенклатура,
	"ящ(5 шт)" КАК Упаковка
ПОМЕСТИТЬ ВТ_СпрНоменклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
	"Кефир",
	"ящ(10 шт)"
	ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
	"Кефир",
	"ящ(15 шт)"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
	"Кефир",
	"ящ(20 шт)"
;
ВЫБРАТЬ
	"5646" КАК ШтрихКод,
	"Кефир" КАК Номенклатура,
	"ящ(5 шт)" КАК Упаковка
ПОМЕСТИТЬ ВТ_РегистрШК
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ	
	"5648",
	"Кефир",
	"ящ(10 шт)"
	ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
	"5647",
	"Кефир",
	""
	//"ящ(15 шт)"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
	"5649",
	"Кефир",
	//""
	"ящ(20 шт)"
;
Выбрать
СпрНоменклатура.Номенклатура,
СпрНоменклатура.Упаковка КАК ЕдиницаИзмерения
ПОМЕСТИТЬ ВТ_Номенклатура
Из ВТ_СпрНоменклатура КАК СпрНоменклатура

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    ШтрихкодыНоменклатуры.Номенклатура,
    ШтрихкодыНоменклатуры.Упаковка
ИЗ
    ВТ_РегистрШК КАК ШтрихкодыНоменклатуры
ГДЕ
	НЕ ШтрихкодыНоменклатуры.Упаковка = ""
;

ВЫбрать
ВТНоменклатура.Номенклатура, 
ВТНоменклатура.ЕдиницаИзмерения, 
ШтрихкодыНоменклатуры.ШтрихКод
ИЗ 
ВТ_Номенклатура КАК ВтНоменклатура
ЛЕВОЕ СОединение ВТ_РегистрШК КАК ШтрихкодыНоменклатуры
ПО ВтНоменклатура.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
И ВтНоменклатура.ЕдиницаИзмерения = ШтрихкодыНоменклатуры.Упаковка
Показать


Тренируйтесь :)
24. user1004898 28 09.05.20 08:32 Сейчас в теме
(23)
какой-то трешовый он.

хотел сделать так, чтобы в первую ВТ сначала тянулись все значения по Товар/Штрихкод/Упаковка

а уже после добавлялись те значения Товар/Упаковка, где Упаковка <> Упоковке из первой ВТ.
2. VictorRGB2 13 08.05.20 14:00 Сейчас в теме
может как-то так
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура,
    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
    УпаковкиЕдиницыИзмерения.Ссылка КАК Упаковка,
    УпаковкиЕдиницыИзмерения.Типоразмер КАК ТипоразмерУпаковки
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
        ПО Номенклатура.Ссылка = УпаковкиЕдиницыИзмерения.Владелец
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО Номенклатура.Ссылка =ШтрихкодыНоменклатуры.Номенклатура
        И  УпаковкиЕдиницыИзмерения.Ссылка = ШтрихкодыНоменклатуры.Упаковка

СГРУППИРОВАТЬ ПО
    Номенклатура.Ссылка,
    УпаковкиЕдиницыИзмерения.Ссылка,
    УпаковкиЕдиницыИзмерения.Типоразмер
Показать


за правильность запроса не гарантирую, ерп или похожей нет под рукой
но идея должна быть понятна
3. user1004898 28 08.05.20 14:09 Сейчас в теме
(2)
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура,
ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
УпаковкиЕдиницыИзмерения.Ссылка КАК Упаковка,
УпаковкиЕдиницыИзмерения.Типоразмер КАК ТипоразмерУпаковки
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
ПО Номенклатура.Ссылка = УпаковкиЕдиницыИзмерения.Владелец
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
ПО Номенклатура.Ссылка =ШтрихкодыНоменклатуры.Номенклатура
И УпаковкиЕдиницыИзмерения.Ссылка = ШтрихкодыНоменклатуры.Упаковка

СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка,
УпаковкиЕдиницыИзмерения.Ссылка,
УпаковкиЕдиницыИзмерения.Типоразмер
Показать


Ошибка: неоднозначное поле:
ПО Номенклатура.Ссылка =ШтрихкодыНоменклатуры.Номенклатура
4. VictorRGB2 13 08.05.20 14:19 Сейчас в теме
(3) в конструкторе погоняйте, может местами поменять связь, т.е. сделать ПО ШтрихкодыНоменклатуры.Номенклатура = Номенклатура.Ссылка
5. user1004898 28 08.05.20 14:28 Сейчас в теме
(4)написал так
ВЫБРАТЬ
	спрНоменклатура.Ссылка КАК Номенклатура,
	рсШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
	спрУпаковкиЕдиницыИзмерения.Ссылка КАК Упаковка,
	спрУпаковкиЕдиницыИзмерения.Типоразмер КАК ТипоразмерУпаковки
ИЗ
	Справочник.Номенклатура КАК спрНоменклатура
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК спрУпаковкиЕдиницыИзмерения
		ПО спрНоменклатура.Ссылка = спрУпаковкиЕдиницыИзмерения.Владелец
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК рсШтрихкодыНоменклатуры
		ПО спрНоменклатура.Ссылка = рсШтрихкодыНоменклатуры.Номенклатура
			И (спрУпаковкиЕдиницыИзмерения.Ссылка = рсШтрихкодыНоменклатуры.Упаковка)
Показать


но теперь штрихкод убрался, по которому нет упаковки, а он должен быть
Прикрепленные файлы:
6. VictorRGB2 13 08.05.20 14:49 Сейчас в теме
(5) тогда может так
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура,
    УпаковкиЕдиницыИзмерения.Ссылка КАК Упаковка,
    УпаковкиЕдиницыИзмерения.Типоразмер КАК ТипоразмерУпаковки
ПОМЕСТИТЬ втТоварУапковка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
        ПО Номенклатура.Ссылка = УпаковкиЕдиницыИзмерения.Владелец
;
//////////////////////////////////////

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

ВЫБРАТЬ 
    втТоварУпаковка.Номенклатура КАК Номенклатура,
    втТоварУпаковка.Упаковка КАК Упаковка,
    втТоварШтрихКод.Штрихкод КАК ШтрихКод,
    втТоварУпаковка.ТипоразмерУпаковкиКАК ТипоразмерУпаковки
ИЗ
    втТоварУпаковка КАК втТоварУпаковка
ЛЕВОЕ СОЕДИНЕНИЕ втТоварШтрихКод КАК втТоварШтрихКод
ПО втТоварШтрихКод.Номенклатура =  втТоварУпаковка.Номенклатура
И  втТоварШтрихКод.Упаковка =  втТоварУпаковка.Упаковка
Показать
7. user1004898 28 08.05.20 15:20 Сейчас в теме
(6) исход такой же, как в (5)...
Оставьте свое сообщение

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