|
Левое соединение Первые 1 | ☑ | ||
---|---|---|---|---|
0
grasshoper
20.07.21
✎
09:26
|
День добрый. Кто знает, как сделать чтобы при левом соединении хватало только первое значение совпадающее по условию?
Пример: Таблица 1: Товар1 5 Товар2 12 Таблица 2: Товар1 10% Товар1 15% Товар2 20% Товар2 35% Товар2 40% Результат: Товар1 5 10% Товар2 12 20 |
|||
1
mikecool
20.07.21
✎
09:27
|
левое соединение ...
по ... и Поле справа в (выбрать первые 1 ... повторить условия) |
|||
2
Малыш Джон
20.07.21
✎
09:45
|
(1) ну зачем учить такие условия соединения делать?
(0) Вторую таблицу приводишь к виду Товар1 10% Товар2 20% потом соединяешь с первой таблицей |
|||
3
grasshoper
20.07.21
✎
09:50
|
(2) Как её привести? ВЫБРАТЬ РАЗЛИЧНЫЕ не подойдёт
|
|||
4
grasshoper
20.07.21
✎
09:54
|
Пример таблицы 2:
ВЫБРАТЬ РАЗЛИЧНЫЕ ДокументРеализацияТовары.Ссылка КАК Документ, ДокументРеализацияТовары.Номенклатура КАК Номенклатура, ДокументРеализацияТовары.ПроцентГодности КАК ПроцентГодности ИЗ Документ.РеализацияТоваровУслуг.Товары КАК ДокументРеализацияТовары ГДЕ ДокументРеализацияТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ДокументРеализацияТовары.Ссылка.Проведен |
|||
5
grasshoper
20.07.21
✎
09:55
|
Первую таблицу соединяю со второй по полям: Документ, Номенклатура.
|
|||
6
mikecool
20.07.21
✎
09:55
|
(2) "ну зачем учить такие условия соединения делать?" для общего развития
|
|||
7
PuhUfa
20.07.21
✎
10:10
|
(0) Если в твоей задаче заменить "хватало только первое значение", на "хватало только МИНИМАЛЬНОЕ значение" (а судя по примеру это так) то становится все проще -)
|
|||
8
grasshoper
20.07.21
✎
10:16
|
(6) Есть большой отчет, в котором можно смотреть движения продукции. Так вот, необходимо сравнить процент годности продукции которая пошла в итоге в отгрузку по документу, с процентом годности из Таблицы 2, который был запрошен изначально.
|
|||
9
Малыш Джон
20.07.21
✎
10:17
|
(3) Не подойдет, все верно. Это стандартная задача на поиск среза данных, гуглится.
|
|||
10
grasshoper
20.07.21
✎
10:30
|
(9) Так временная таблица уже готова и соединение работает, я только не могу понять как исключить дублирование, когда в таблице 2 на один и тот же товар может быть разный процент.
|
|||
11
Малыш Джон
20.07.21
✎
10:33
|
(10) как ты понимаешь, какой процент по каждому товару оставлять?
|
|||
12
grasshoper
20.07.21
✎
10:44
|
(11) Максимальный
|
|||
13
grasshoper
20.07.21
✎
10:46
|
(11) {ЛЕВОЕ СОЕДИНЕНИЕ Документ_Товары КАК Документ_Товары
ПО (ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ИЛИ ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров) И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Регистратор = Документ_Товары.Документ И ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура = Документ_Товары.Номенклатура И (Документ_Товары.ПроцентГодности В (ВЫБРАТЬ ПЕРВЫЕ 1 МИНИМУМ(Документ_Товары.ПроцентГодности) КАК ПроцентГодности ИЗ Документ_Товары КАК Документ_Товары ГДЕ Документ_Товары.Документ = ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Регистратор И Документ_Товары.Номенклатура = ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура))} |
|||
14
patapum
20.07.21
✎
10:47
|
(12) Тогда держи
ВЫБРАТЬ Табл1.Товар, Табл1.Количество, Максимум(Табл2.Процент) ИЗ Табл1 ЛЕВОЕ СОЕДИНЕНИЕ Табл2 По Табл1.Товар = Табл2.Товар СГРУППИРОВАТЬ ПО Табл1.Товар, Табл1.Количество |
|||
15
grasshoper
20.07.21
✎
10:54
|
(14) хороший вариант, но в таблице 1 около 40 полей, из разных временных таблиц. Суммы не поплывут из-за Максимум(Табл2.Процент)?
|
|||
16
grasshoper
20.07.21
✎
10:55
|
(14) может имеет смысл выбирать максимальное прямо во временной таблице?
|
|||
17
hhhh
20.07.21
✎
10:55
|
(15) нет не поплывут
|
|||
18
grasshoper
20.07.21
✎
10:56
|
Наверное лучше тут брать максимум
// Таблица 2 ВЫБРАТЬ Документ_Товары.Документ КАК Документ, Документ_Товары.Номенклатура КАК Номенклатура, Документ_Товары.ПроцентГодности КАК ПроцентГодности ПОМЕСТИТЬ Документ_Товары ИЗ (ВЫБРАТЬ РАЗЛИЧНЫЕ Документ_РеализацияТоваровУслуг_Товары.Ссылка КАК Документ, Документ_РеализацияТоваровУслуг_Товары.Номенклатура КАК Номенклатура, Документ_РеализацияТоваровУслуг_Товары.ПроцентГодности КАК ПроцентГодности ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Документ_РеализацияТоваровУслуг_Товары ГДЕ Документ_РеализацияТоваровУслуг_Товары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода И Документ_РеализацияТоваровУслуг_Товары.Ссылка.Проведен ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РАЗЛИЧНЫЕ Документ_ПеремещениеТоваров_Товары.Ссылка, Документ_ПеремещениеТоваров_Товары.Номенклатура, Документ_ПеремещениеТоваров_Товары.ПроцентГодности ИЗ Документ.ПеремещениеТоваров.Товары КАК Документ_ПеремещениеТоваров_Товары ГДЕ Документ_ПеремещениеТоваров_Товары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода И Документ_ПеремещениеТоваров_Товары.Ссылка.Проведен ИНДЕКСИРОВАТЬ ПО Документ, Номенклатура ; |
|||
19
grasshoper
20.07.21
✎
10:59
|
(17) очень много полей придется группировать
|
|||
20
Anton1307
20.07.21
✎
11:01
|
>>> только первое значение совпадающее по условию
> Вторую таблицу приводишь к виду >>> Как её привести? ВЫБРАТЬ РАЗЛИЧНЫЕ не подойдёт Сформулируй для начала, что означает твоё "первое значение". Строка с минимальным значением во второй колонке? Ну вот и сформируй временную таблицу, где были бы строки из "Таблица 2" с минимальным значением второй колонки для каждого товара |
|||
21
grasshoper
20.07.21
✎
11:03
|
(20) Так и сделал при объединении. Всем спасибо за мозговой штурм.
|
|||
22
Serginio1
20.07.21
✎
13:09
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |