|
Соединение двух таблиц
| ☑ |
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) спасибо
|
|