У меня проблема с моим текущим запросом, я хочу получить запись/результат на основе столбца (пример column Status имеет значение new/pending/completed для запроса i выполнить, если есть 3 записи со статусом new, это должен быть фильтр, чтобы показывать 1 запись только с статусом new). Ниже мой текущий запрос, который получает дубликат столбца.Запрос на выбор строк на основе отдельных значений столбца
select a.CW_UPD_TMS,
case when a.CW_CRT_UID='AAA' then 'BBB'
else a.CW_CRT_UID end as CW_CRT_UID,
COALESCE(b.CW_S_BR, a.CW_S_BR) as CW_S_BR,
a.CW_TRX_STAT as STATUS,
SUBSTR(a.CW_UPD_TMS,7,2) as day,
SUBSTR(a.CW_UPD_TMS,5,2) as month,
SUBSTR(a.CW_UPD_TMS,1,4) as ayear,
SUBSTR(a.CW_UPD_TMS,9,2) as hours,
SUBSTR(a.CW_UPD_TMS,11,2) as mins,
SUBSTR(a.CW_UPD_TMS,13,2) as secs,
case when cast(SUBSTR(a.CW_UPD_TMS,9,2) as INT) > 12 then 'PM'
else 'AM' end as zone
from TABLEA a
left outer join TABLEB b on a.CW_CRT_UID = b.CW_S_USR
where a.CW_TRX_ID = '20150415110000798'
union
select a.CW_UPD_TMS,
case when a.CW_CRT_UID='AAA' then 'BBB'
else a.CW_CRT_UID end as CW_CRT_UID,
COALESCE(b.CW_S_BR, a.CW_S_BR) as CW_S_BR,
a.CW_TRX_STAT as STATUS,
SUBSTR(a.CW_UPD_TMS,7,2) as day,
SUBSTR(a.CW_UPD_TMS,5,2) as month,
SUBSTR(a.CW_UPD_TMS,1,4) as ayear,
SUBSTR(a.CW_UPD_TMS,9,2) as hours,
SUBSTR(a.CW_UPD_TMS,11,2) as mins,
SUBSTR(a.CW_UPD_TMS,13,2) as secs,
case when cast(SUBSTR(a.CW_UPD_TMS,9,2) as INT) > 12 then 'PM'
else 'AM' end as zone
from TABLEC a
left outer join TABLEB b on a.CW_CRT_UID = b.CW_S_USR
where a.CW_TRX_ID = '20150415110000798'
Вот текущий результат:
CW_UPD_TMS CW_CRT_UID CW_S_BR STATUS DAY MONTH AYEAR HOURS MINS SECS ZONE
2015062610260746811 happy KLC NEW 26 06 2015 10 26 07 AM
2015062610273984711 happy KLC NEW 26 06 2015 10 27 39 AM
2015062610275762511 happy KLC NEW 26 06 2015 10 27 57 AM
так как теперь я изменить запрос таким образом, чтобы показывать только 1 только запись (шоу с мин (CW_UPD_TMS)), а теперь 3 записи имеют такой же статус (Новый).
мой ожидаемый результат должен быть:
CW_UPD_TMS CW_CRT_UID CW_S_BR STATUS DAY MONTH AYEAR HOURS MINS SECS ZONE
2015062610260746811 happy KLC NEW 26 06 2015 10 26 07 AM
жаль мой бедный английский.
Вы не должны указать DISTINCT, когда вам выполните UNION, так как UNION удалит повторяющиеся строки. – jarlh
Итак, если они не все имеют одинаковый статус, вы все равно хотите, чтобы эти строки сохраняли строку с самой ранней меткой времени в каждой группе? – shawnt00
Не храните даты или временные метки в качестве символа, используйте тип данных DATE или TIMESTAMP! – jarlh