Имя: Пароль:
1C
1С v8
Соединение двух таблиц
0 kennetmccormick
 
24.09.18
15:23
Туплю с элементарным соединением. Есть две таблицы:
первая- Иванов|31.01.2018
        Иванов|28.02.2018

вторая- Иванов|01.01.2018| Коэф1
        Иванов|01.02.2018| Коэф2

нужно получить: Иванов|31.01.2018|Коэф1
                Иванов|28.02.2018|Коэф2

сделал левое соединение по Таб1.дата>=Таб2.Дата
но в итоге выходит три записи:
Иванов|31.01.2018|Коэф1
Иванов|28.02.2018|Коэф1
Иванов|28.02.2018|Коэф2
1 Cool_Profi
 
24.09.18
15:24
ПО КОНЕЦПЕРИОДА(Таб1.Дата, МЕСЯЦ) = КОНЕЦПЕРИОДА(Таб2.Дата, МЕСЯЦ) И Таб1.Человек = Таб2.Человек

Если я правильно понял идею
2 kennetmccormick
 
24.09.18
15:48
Неверные параметры "КОНЕЦПЕРИОДА"
И (КОНЕЦПЕРИОДА(<<?>>ТаблСотры.Месяц, МЕСЯЦ) = КОНЕЦПЕРИОДА(ТабКоэф.Период, МЕСЯЦ))

во второй таблице может быть не одна запись по сотру. Задвоит если попадется такое
3 kennetmccormick
 
24.09.18
15:49
если по одному сотру будет несколько записей то нужна последняя
4 Cool_Profi
 
24.09.18
15:50
(3) выбирай максимум(ТабКоэф.Период)
(2) у меня работает, проверь правильнописание.
5 kennetmccormick
 
24.09.18
15:56
(4) и копипастил и в конструкторе запроса делал. подсветку делает норм, но ошибку выдает
6 dmt
 
24.09.18
15:58
выбрать Т1.Сотр, Максимум(Т2.Период) КАК МаксДата
поместить МаксДаты
из Т1
левое соединение Т2
по Т1.Сотр = Т2.Сотр
И Т1.Дата <= Т2.Период
сгруппировать по Т1.Сотр
;

выбрать Т1.*, Т2.Коэф
из Т1
левое соединение
(выбрать Т2.*
из МаксДаты
левое соединение Т2 по МД.МаксДата = Т2.Период) КАК Т2
по Т1.Сотр = Т2.Сотр
7 kennetmccormick
 
25.09.18
09:33
(6) спасибо