Bonjour, j'ai cette requête dans la base de données:
114481 22/06/20 96
CO_GID DIA TRX
le problème est que je veux uniquement que la ligne soit renvoyée avec la plus récente date: dans ce cas, ce serait le 22/06/2020 et le groupe par m'empêche car je dois mettre le TRX_INI_FREQUENCY dans le groupe par
ce que je voulais obtenir serait:
114481 07/11/18 null 114481 27/10/18 49 114481 22/06/20 96
select DISTINCT(CO_GID), max(last_modified ) as DIA, TRX_INI_FREQUENCY as TRX from C_BSC_TRX ,UTP_COMMON_OBJECTS where (OBJ_GID = CO_GID) and (CO_GID LIKE '114481%') GROUP BY CO_GID,TRX_INI_FREQUENCY CO_GID DIA TRX
3 Réponses :
Selon ce que vous utilisez, ajoutez SELECT TOP 1 et ORDER BY DIA DESC
Vous pouvez utiliser keep pour obtenir la dernière valeur de trx:
select CO_GID,
max(last_modified) as DIA,
max(TRX_INI_FREQUENCY) keep (dense_rank first order by last_modified desc) as TRX
from C_BSC_TRX JOIN
UTP_COMMON_OBJECTS
on OBJ_GID = CO_GID and CO_GID LIKE '114481%'
group by CO_GID;
Notes:
FROM . JOIN appropriée, explicite, standard et lisible. select top 1 DISTINCT(CO_GID), max(last_modified ) as DIA, TRX_INI_FREQUENCY as TRX from C_BSC_TRX ,UTP_COMMON_OBJECTS where (OBJ_GID = CO_GID) and (CO_GID LIKE '114481%') GROUP BY CO_GID,TRX_INI_FREQUENCY Order by DIA desc