如何根据条件提取值并创建新列

时间:2019-09-26 14:31:21

标签: sql

我有一个创建的列,该列根据状态码具有不同的时间戳。我想提取不同的时间戳,并根据状态码创建新列。

select C.RM_JOB_NO, 
C.DATE_CREATED,
to_char(cast((from_tz(cast(c.SEND_DATE_TIME AS TIMESTAMP),'00:00') AT TIME ZONE 'EST5EDT') AS DATE), 'yyyy-mm-dd hh24:mi:ss') as CREATED, 
CASE
    WHEN (c.status_code = 'ADDORD' ) THEN 'Created'
    WHEN (c.status_code = 'ASGN' ) THEN 'Dispatched'
    WHEN (c.status_code = 'ENRT' ) THEN 'Enroute'
    WHEN (c.status_code = 'ARRIVE' ) THEN 'Onsite'       
    WHEN (c.status_code = 'NCLCMP' ) THEN 'Completed'
    WHEN (c.status_code = 'CGIL' ) THEN 'CGI'
    WHEN (c.status_code = 'CHGORD' ) THEN 'OrdChanged'
    WHEN (c.status_code = 'INTRPT' ) THEN 'Interrupt'
    else c.status_code
    END as "Status Code" ,
c.CREATOR_ID,
c.SERVICE_ID,
c.DISPATCH_CENTER,
c.PERSONNEL_ID_ONE,
d.RESOURCE_ID,
d.emp_id,
d.employee_name,
A.ST_NO, 
A.ST_NAME, 
A.CITY, 
A.ZIP,
A.GEO_COORD_X,
A.GEO_COORD_Y,
A.EXEC_CODE,
B.COND_FND_CD_1,
B.COND_FND_CD_2, 
B.COND_FND_CD_3, 
B.COND_FND_CD_4, 
B.COND_LFT_CD_1, 
B.COND_LFT_CD_2, 
B.COND_LFT_CD_3, 
B.COND_LFT_CD_4, 
B.COMP_INFO_CD, 
b.complete_date_time,
DetermineFieldCenter(a.Map_No, a.Grid_No, a.City, a.Zip, a.Order_SubType) "Field Center"
from fsa_order A, completion B, activity C, employee D
where A.RM_JOB_NO = B.rm_job_no
AND A.RM_JOB_NO=C.RM_JOB_NO
AND c.RESOURCE_ID=d.RESOURCE_ID

我想看到的是,如果status_code ='Created',则新列'time created'将包含“ created”状态代码的时间戳。其余状态代码相同

0 个答案:

没有答案