Reputation: 1145
I have two tables project_payment
and payment_schedule
CREATE TABLE project_payment (
`tenant_id` INTEGER,
`project_id` INTEGER,
`payment_date` datetime NOT NULL,
PRIMARY KEY(tenant_id,project_id,payment_date)
);
INSERT INTO project_payment
(`tenant_id`, `project_id`, `payment_date`)
VALUES
('1', '1', '2020-12-11 07:09:16'),
('1', '1', '2020-12-15 07:09:16');
CREATE TABLE payment_schedule (
`tenant_id` INTEGER not null ,
`project_id` INTEGER not null,
`schedule_date` datetime NOT NULL,
PRIMARY KEY(tenant_id,project_id,schedule_date)
);
INSERT INTO payment_schedule
(`tenant_id`, `project_id`, `schedule_date`)
VALUES
('1', '1', '2020-12-15 07:09:16'),
('1', '1', '2020-12-28 07:09:29'),
('1', '1', '2021-01-02 01:00:00');
Here I take last_payment_date, now i need to get the next payment schedule date
SELECT MAX(pp.payment_date) last_payment_date
FROM project_payment pp
JOIN payment_schedule ps
ON ps.tenant_id = pp.tenant_id
AND ps.project_id = pp.project_id;
I don't knw how to select the next date so I didn't write that code here..
I need to get next payment date from the schedule_date
according to the current date(present day)
Expected output:
last_payment_date next_schedule_date
2020-12-15 07:09:16 2020-12-28 07:09:29
Upvotes: 0
Views: 496
Reputation: 42642
SELECT p.payment_date last_payment_date,
s.schedule_date next_schedule_date
FROM ( SELECT MAX(payment_date) payment_date
FROM project_payment ) p
JOIN payment_schedule s ON p.payment_date < s.schedule_date
ORDER BY s.schedule_date LIMIT 1
Upvotes: 1