@David138

Как соединить таблицы и добавить столбец?

Есть две таблицы sch.t1:
spoiler
"name"	"spec"	"sal"	"from"	"to"
"Имя1"	"Специалист1"	10000	"2020-01-01"	"2020-01-31"
"Имя1"	"Специалист1"	12000	"2020-02-01"	"2020-02-29"
"Имя1"	"Специалист1"	13500	"2020-03-01"	"2020-03-31"
"Имя1"	"Специалист1"	15000	"2020-04-01"	"2020-04-30"
"Имя1"	"Специалист1"	15500	"2020-05-01"	"2020-05-31"
"Имя1"	"Специалист1"	16000	"2020-06-01"	"2020-06-30"
"Имя1"	"Специалист2"	17000	"2020-07-01"	"2020-07-31"
"Имя1"	"Специалист2"	17500	"2020-08-01"	"2020-08-31"
"Имя1"	"Специалист2"	19500	"2020-09-01"	"2020-09-30"
"Имя1"	"Специалист2"	20000	"2020-10-01"	"9999-12-31"
"Имя2"	"Специалист1"	10000	"2020-01-01"	"2020-01-31"
"Имя2"	"Специалист1"	12500	"2020-02-01"	"2020-02-29"
"Имя2"	"Специалист1"	13500	"2020-03-01"	"2020-03-31"
"Имя2"	"Специалист1"	16000	"2020-04-01"	"2020-04-30"
"Имя2"	"Специалист2"	17500	"2020-05-01"	"2020-05-31"
"Имя2"	"Специалист2"	20000	"2020-06-01"	"2020-06-30"
"Имя2"	"Специалист2"	22000	"2020-07-01"	"2020-07-31"
"Имя2"	"Специалист1"	23500	"2020-08-01"	"2020-08-31"
"Имя2"	"Специалист1"	26000	"2020-09-01"	"2020-09-30"
"Имя2"	"Специалист1"	27500	"2020-10-01"	"2020-10-31"
"Имя2"	"Специалист1"	28500	"2020-11-01"	"2020-11-30"
"Имя2"	"Специалист1"	29500	"2020-12-01"	"9999-12-31"

И вторая sch.t2:
spoiler
"date"	"name"	"pay"
"2020-01-07"	"Имя1"	2000
"2020-01-14"	"Имя1"	2000
"2020-01-21"	"Имя1"	2500
"2020-01-31"	"Имя1"	3500
"2020-02-07"	"Имя1"	2000
"2020-02-14"	"Имя1"	3000
"2020-02-21"	"Имя1"	3000
"2020-02-29"	"Имя1"	4000
"2020-03-07"	"Имя1"	2500
"2020-03-14"	"Имя1"	3000
"2020-03-21"	"Имя1"	2000
"2020-03-31"	"Имя1"	6000
"2020-04-07"	"Имя1"	3500
"2020-04-14"	"Имя1"	2000
"2020-04-21"	"Имя1"	3500
"2020-04-30"	"Имя1"	6000
"2020-05-07"	"Имя1"	3500
"2020-05-14"	"Имя1"	2000
"2020-05-21"	"Имя1"	2500
"2020-05-31"	"Имя1"	7500
"2020-06-07"	"Имя1"	2500
"2020-06-14"	"Имя1"	2500
"2020-06-21"	"Имя1"	3500
"2020-06-30"	"Имя1"	7500
"2020-07-07"	"Имя1"	3500
"2020-07-14"	"Имя1"	4000
"2020-07-21"	"Имя1"	2000
"2020-07-31"	"Имя1"	7500
"2020-08-07"	"Имя1"	3000
"2020-08-14"	"Имя1"	2500
"2020-08-21"	"Имя1"	3000
"2020-08-31"	"Имя1"	9000
"2020-09-07"	"Имя1"	4000
"2020-09-14"	"Имя1"	2000
"2020-09-21"	"Имя1"	2500
"2020-09-30"	"Имя1"	11000
"2020-10-07"	"Имя1"	4000
"2020-10-14"	"Имя1"	4500
"2020-10-21"	"Имя1"	5000
"2020-10-31"	"Имя1"	6500
"2020-11-07"	"Имя1"	4500
"2020-11-14"	"Имя1"	5000
"2020-11-21"	"Имя1"	2000
"2020-11-30"	"Имя1"	8500
"2020-12-07"	"Имя1"	3000
"2020-12-14"	"Имя1"	4000
"2020-12-21"	"Имя1"	2500
"2020-12-31"	"Имя1"	10500
"2020-01-07"	"Имя2"	2500
"2020-01-14"	"Имя2"	2000
"2020-01-21"	"Имя2"	2500
"2020-01-31"	"Имя2"	3000
"2020-02-07"	"Имя2"	2000
"2020-02-14"	"Имя2"	2000
"2020-02-21"	"Имя2"	2500
"2020-02-29"	"Имя2"	6000
"2020-03-07"	"Имя2"	3000
"2020-03-14"	"Имя2"	2500
"2020-03-21"	"Имя2"	2000
"2020-03-31"	"Имя2"	6000
"2020-04-07"	"Имя2"	3000
"2020-04-14"	"Имя2"	3500
"2020-04-21"	"Имя2"	4000
"2020-04-30"	"Имя2"	5500
"2020-05-07"	"Имя2"	2000
"2020-05-14"	"Имя2"	3500
"2020-05-21"	"Имя2"	4000
"2020-05-31"	"Имя2"	8000
"2020-06-07"	"Имя2"	4000
"2020-06-14"	"Имя2"	2500
"2020-06-21"	"Имя2"	3000
"2020-06-30"	"Имя2"	10500
"2020-07-07"	"Имя2"	5000
"2020-07-14"	"Имя2"	4500
"2020-07-21"	"Имя2"	5500
"2020-07-31"	"Имя2"	7000
"2020-08-07"	"Имя2"	5500
"2020-08-14"	"Имя2"	3000
"2020-08-21"	"Имя2"	2000
"2020-08-31"	"Имя2"	13000
"2020-09-07"	"Имя2"	3500
"2020-09-14"	"Имя2"	3000
"2020-09-21"	"Имя2"	5000
"2020-09-30"	"Имя2"	14500
"2020-10-07"	"Имя2"	6000
"2020-10-14"	"Имя2"	3500
"2020-10-21"	"Имя2"	4000
"2020-10-31"	"Имя2"	14000
"2020-11-07"	"Имя2"	3500
"2020-11-14"	"Имя2"	7000
"2020-11-21"	"Имя2"	5500
"2020-11-30"	"Имя2"	12500
"2020-12-07"	"Имя2"	4500
"2020-12-14"	"Имя2"	3000
"2020-12-21"	"Имя2"	6500
"2020-12-31"	"Имя2"	15500

Как мне объединить эти таблицы? и добавить еще один столбец "осталось выплатить за месяц"? Я написал такой код:
select 
    --*
    dsp.date,
    dgsh.name,
    dgsh.sal,
    dsp.payt,
    dgsh.from,
    dgsh.to
from sch.t1 as dgsh
inner join sch.t2 as dsp
    on dgsh.name = dsp.name

но мне выдает не верные данные, так как в столбцах date, from, to соединяется например так (Всю таблицу отобразить не могу, так как слишком много строк):
spoiler
|"date"|"name"|"sal"|"pay"|"from"|"to"| 
| ---- | ---- | --- | --- | ---- | -- | 
|"2020-01-07"|"Имя1"|20000|2000|"2020-10-01"|"9999-12-31"| 
|"2020-01-07"|"Имя1"|19500|2000|"2020-09-01"|"2020-09-30"|
 |"2020-01-07"|"Имя1"|17500|2000|"2020-08-01"|"2020-08-31"| 
|"2020-01-07"|"Имя1"|17000|2000|"2020-07-01"|"2020-07-31"| 
|"2020-01-07"|"Имя1"|16000|2000|"2020-06-01"|"2020-06-30"| 
|"2020-01-07"|"Имя1"|15500|2000|"2020-05-01"|"2020-05-31"| 
|"2020-01-07"|"Имя1"|15000|2000|"2020-04-01"|"2020-04-30"| 
|"2020-01-07"|"Имя1"|13500|2000|"2020-03-01"|"2020-03-31"| 
|"2020-01-07"|"Имя1"|12000|2000|"2020-02-01"|"2020-02-29"| 
|"2020-01-07"|"Имя1"|10000|2000|"2020-01-01"|"2020-01-31"| 
|"..."|"..."|...|...|"..."|"..."|

Это не правильно, так как date не входит в пределы from и to. как решить эту проблему?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
так как date не входит в пределы from и to
WHERE dsp.date BETWEEN dgsh.from AND dgsh.to
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы