I have a view called termdate: (termid,startingdate,endingdate,pre_edning)
looks like:
x
termid | startingdate | endingdate | pre_edning |
-----+------------+------------+------------+---------------
227 | 1950-01-31 | 1950-12-31 | |
228 | 1951-01-31 | 1951-12-31 | 1950-12-31 |
229 | 1952-01-31 | 1952-12-31 | 1951-12-31 |
230 | 1953-01-31 | 1953-12-31 | 1952-12-31 |
231 | 1954-01-31 | 1954-12-31 | 1953-12-31 |
232 | 1955-01-31 | 1955-12-31 | 1954-12-31 |
233 | 1956-01-31 | 1956-12-31 | 1955-12-31 |
I wish to create 2 new Columns called new_starting
, new_ending
by follow the rules below:
if startingdate - pre_ending>=7
then
new_starting := startingdate-7
new_ending := new_starting -1
I’am new to sql, Can someone please help me to achive that?
Advertisement
Answer
If I understand correctly, this is just case
expressions:
select t.*,
(case when startingdate >= pre_ending + interval '7 day'
then startingdate - interval '7 day'
end) as new_starting,
(case when startingdate >= pre_ending + interval '7 day'
then startingdate - interval '8 day'
end) as new_ending,
from t