Мне снова нужна твоя помощь. Это о SQL утверждении, что я в растерянности.
В качестве основы у меня есть таблица с данными контракта для нескольких клиентов. В этой таблице вы можете увидеть, как долго действует контракт для клиента и есть ли какие-либо изменения в контракте с течением времени. Если что-то меняется, оно отображается как «ИСТИНА» в поле «contract_value_change».
На этом основании мне нужно рассчитать количество месяцев, которое клиент имел в договоре до и после изменения. Я ввел этот результат вручную в поле «Фактор». У вас есть идея, как я могу рассчитать это автоматически с SQL? (Я работаю с Redshift)
CREATE TABLE IF NOT EXISTS "TEST_CUSTOMER" (
"Customer_no" INT,
"Month" TEXT,
"Current_line_no" INT,
"contract_duration_in_month" INT,
"contract_value" INT,
"contract_value_before" TEXT,
"contract_value_change" TEXT,
"FACTOR" INT
);
INSERT INTO "TEST_CUSTOMER" VALUES
(100,'01-2020',1,12,100,'NULL','false',4),
(100,'02-2020',2,12,100,'100','false',4),
(100,'03-2020',3,12,100,'100','false',4),
(100,'04-2020',4,12,100,'100','false',4),
(100,'05-2020',5,12,80,'100','TRUE',8),
(100,'06-2020',6,12,80,'80','false',8),
(100,'07-2020',7,12,80,'80','false',8),
(100,'08-2020',8,12,80,'80','false',8),
(100,'09-2020',9,12,80,'80','false',8),
(100,'10-2020',10,12,80,'80','false',8),
(100,'11-2020',11,12,80,'80','false',8),
(100,'12-2020',12,12,80,'80','false',8),
(20000,'01-2020',1,6,2000,'NULL','false',4),
(20000,'02-2020',2,6,2000,'2000','false',4),
(20000,'03-2020',3,6,2000,'2000','false',4),
(20000,'04-2020',4,6,2000,'2000','false',4),
(20000,'05-2020',5,6,2500,'2000','TRUE',2),
(20000,'06-2020',6,6,2500,'2500','false',2);