2016-09-26 78 views
-2

爲每個類別返回最新的類別和相應的結果所需的輸入:組列在甲骨文

emp id | appointment_id | appointment_type | assessment_date | Result_id | Res_Date 
100115 | 77382   | HAEC1   | 06.10.2009  | 1234  | 07.10.2009 
100115 | 77890   | HAEC1   | 07.10.2009  | 1256  | 12.10.2009 
100115 | 77890   | HAEC1   | 07.10.2009  | 1156  | 12.10.2009 
100115 | 77111   | HAEC1   | 07.10.2015  | 1296  | 12.10.2015 
100115 | 77222   | HAEC1   | 09.10.2016  | 1246  | 12.10.2016 
100115 | 77222   | HAEC1   | 09.10.2016  | 1346  | 12.10.2016 
100115 | 77222   | HAEC1   | 09.10.2016  | 1446  | 12.10.2016 
100115 | 77333   | HAB1    |09.10.2016  |1246  | 12.10.2016 
100115 | 77444   | HAC1    | 09.10.2016  | 1246  | 12.10.2016 
100115 | -77555   | HAC3    | 09.10.2016  | 1246  | 12.10.2016 

和所需的輸出

emp id | appointment_id| appointment_type| assessment_date|Result_id| Res_Date 
100115 |-77222   |HAEC1   |09.10.2016|  1246  |12.10.2016| 
100115 |-77222   |HAEC1   |09.10.2016|  1346  |12.10.2016| 
100115 |-77222   |HAEC1   |09.10.2016|  1446  |12.10.2016| 
100115 |-77333   |HAB1    |09.10.2016|  1246  |12.10.2016| 
100115 |-77444   |HAC1    |09.10.2016|  1246  |12.10.2016| 
100115 |-77555   |HAC3    |09.10.2016|  1246  |12.10.2016| 
+0

將輸入數據轉換爲期望結果集的業務規則是什麼? – APC

+0

你有嘗試過什麼嗎?如果是這樣,請張貼您的代碼,解釋您需要的邏輯;如果沒有,請在尋求幫助之前做一些努力 – Aleksej

回答

0

猜測,過濾器,你想基於assessment_date的值,並且所有appointment_id的負值不是拼寫錯誤:

select emp id 
     , case when appointment_id > 0 then 
        appointment_id * -1 
       else appointment_id 
     end as appointment_id 
     , appointment_type 
     , assessment_date 
     , Result_id 
     , Res_Date 
from your_table 
where assessment_date > sysdate 
/
+0

感謝您的回覆@ APC :)。萬分感激。我找到了解決方案並通過在where子句中添加子查詢來提交查詢,以按類別檢索最新的約會。 –

+0

而「 - 」不是拼寫錯誤,實際數據有 - –