Застрял в рекурсивном запросе с postgresql - PullRequest
0 голосов
/ 30 ноября 2018
INSERT INTO complaintstatus(complaintid,currentstatus,reason,photo,datetime,open_reopen_status,actiontaken,parent_id)
select complaint_id,status,(CASE WHEN (rejectionreason IS NULL OR rejectionreason = '') THEN reopen_reason ELSE rejectionreason END),photo_name,server_time,completion_date,reopen,actiontaken,parent_complaint_id
from complaint_details_v2 
where status !=0 
order by parent_complaint_id

Я хочу добавить данные в соответствии с выборкой состояния, выбрав запрос, если статус = 3, затем вставить в жалобу с датой, выбранной в качестве server_time, и вставить только в одну запись, но если статус равен 5, вставить несколько вставок от имениЗавершение и время_сервера, потому что одни и те же данные повторяются, только состояние, повторное открытие, время_сервера и дата_доставки изменяются в зависимости от состояния.

select complaint_id,status,
       (CASE WHEN (rejectionreason IS NULL OR > rejectionreason = '') 
               THEN reopen_reason ELSE rejectionreason
        END),
        photo_name,
        (CASE WHEN (status='3') THEN server_time 
              ELSE completion_date 
         END),
         reopen,
         actiontaken,
         parent_complaint_id 
from
complaint_details_v2 
where status !=0 
order by parent_complaint_id

выходные данные этого запроса:

ComplaintId Status rejectionreason    Photoname server_time completiondate reopen actiontaken parent_complaint_id
194          3      sitce picture      abc.jpg    2017-09-15                   0                109
                    is not available
195          5                          xyz.jpg   2017-09-15 2017-09-15        0                 195
                                                  08:22:44    00:00:00
214          5                          asd.jpg   2017-09-19                   1   repair done   214
                                                  11:23:11
1599         5                          abc.jpg   2017-09-25 2017-10-18        0   complete      214

enter image description here

В таблицу complaintstatus я должен вставить данные согласно указанному выше 0 выходу на основестатус и заново откройте данные и выберите время сервера и дату завершения согласно статусу

 Status rejectionreason    Photoname datetime      reopen actiontaken parent_complaint_id
  3     site picture       xyz.jpg    2017-09-15     0                 194
        are not available             07:59:59.582                  
  5                        abc.jpg    2017=09-15     0     repair done  195
                                      08:22:44.247
  5                        asd.jpg    2017-09-19     0     repairdone   214
                                      11:23:11.274
  0                                   2017-09-25     0                  214
                                      18:23:07.181
  5                        asd.jpg    2017-10-18     0     complete     214

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...