2016-09-18 3 views
0

Меня попросили сгруппировать TX_Comments на основе полей Enddate и CD_TYPE_COMMENTS. Выход должен быть последней строкой на CD_TYPE_COMMENTS и ENDDATEГрупповые комментарии, основанные на двух полях

ID_EMPLOYEE ID_HEALTH_ASSESSMENT   CD_TYPE_COMMENT ENDDATE TX_COMMENT 
0M00910044 37754 Validation   18.06.2013   Record validated. 
0M00910044 37754 Validation   20.05.2013   Record validated. 
0M00910044 37754 Result    26.07.2013   Created. 
0M00910044 37754 Appointment   18.06.2013   Pls cancel due to      work commitments. 
0M00910044 37754 Appointment   25.06.2013   Confirmed (via Import) 
0M00910044 37754 Ellipse Difference 23.07.2013 The following Employee Details have been updated: 
0M00910044 37754 General    26.07.2013 Record complete 
0M00910044 37754 Validation   20.05.2013 Record created. 
0M00910044 37754 Appointment   09.07.2013 As advised by Mick Maskell. To be rescheduled to another date. 
0M00910044 37754 Appointment   09.07.2013 Late cancellation charges will apply. 
0M00910044 37754 Appointment   09.07.2013 Confirmed (via Import) 
0M00910044 37754 Ellipse Difference 23.07.2013 The following Employee Details have been updated and should be checked for impact on this HA: 
0M00910044 37754 Validation   20.05.2013 Manually created due to import exception error - Test Type could not be determined. Create HA manually. Has a valid RISI. 
0M00910044 37754 Appointment   25.06.2013 Preferences provided. 
0M00910044 37754 Ellipse Difference 04.07.2013 The following Employee Details have been updated and should be checked for impact on this HA: 
0M00910044 37754 Validation   09.07.2013 Record validated. 
0M00910044 37754 Appointment   18.06.2013 Cancelled (by Railcorp) 
0M00910044 37754 Appointment   09.07.2013 Cancelled (by Railcorp) 
0M00910044 37754 Appointment   24.05.2013 Preferences provided. 
0M00910044 37754 Appointment   28.05.2013 Confirmed (via Import) 
0M00910044 37754 Appointment   09.07.2013 Preferences provided. 
+1

Тогда в чем вопрос? –

+0

«Группа TX_Comment на основе CD_TYPE_COMMENT и ENDDATE», является ли это запросом 'SQL', который вы написали, или комментарием? –

+0

Его комментарий. Я пробовал использовать функции MAX, Partition, GroupBy, но не получил ожидаемого результата. – Zoelte

ответ

1

Если вы хотите последнюю строку, то вы не хотите, чтобы агрегатных данных. Вы просто хотите выбрать последний.

Вот один метод:

select t.* 
from t 
where t.enddate = (select max(t2.enddate) 
        from t t2 
        where t2.CD_TYPE_COMMENT = t.CD_TYPE_COMMENT 
       ); 

Если вы действительно хотите эту информацию на одного работника, а, затем включить в пункте корреляции and t2.Employee_ID = t.Employee_ID.

+0

Waow! Это может быть нечто вроде SQL в SQL; реализация некоторого SQL 'partition by' или' group by' в самом SQL. –

+0

@ Gordon Я внес незначительные изменения в вышеприведенный запрос, и он отлично работал. Ценю вашу помощь :) – Zoelte

Смежные вопросы