Sql 从具有多个联接的查询中选择最新的客户端记录

Sql 从具有多个联接的查询中选择最新的客户端记录,sql,oracle,Sql,Oracle,我有一个包含许多联接的查询,我正在尝试从中选择最新的客户端记录。这是我的查询,但它提供了客户的所有记录: EDIT: SELECT ca.CA_ID, ca.CLIENT_ID, ca.CA_STATUS_TYPE, ca.CREATED_BY, MAX(ca.CREATED_DATE), ca.UPDATED_BY, MAX(ca.UPDATED_DATE), ca.CA_REFERENCE_NUMBER, cl.SOURCE_SYSTEM_CODE, catchment.EST_CAT

我有一个包含许多联接的查询,我正在尝试从中选择最新的客户端记录。这是我的查询,但它提供了客户的所有记录:


EDIT:

SELECT ca.CA_ID, ca.CLIENT_ID, ca.CA_STATUS_TYPE, ca.CREATED_BY, MAX(ca.CREATED_DATE), ca.UPDATED_BY, MAX(ca.UPDATED_DATE), ca.CA_REFERENCE_NUMBER, 
cl.SOURCE_SYSTEM_CODE, catchment.EST_CATCHMENT_AREA,  catchment.SERVICE_PROVIDER_NAME, sds.SDS_NAME, sds.SDS_ADDRESS_TEXT, u.CA_USER_TYPE "USER TYPE",

CASE WHEN ca.REFERRED_IND = 1 THEN 'REFERRED' ELSE 'NOT REFERRED' END REFER_TYPE
FROM CA ca
JOIN(
     SELECT TOP 1
     CLIENT_ID, MAX(CREATED_DATE) CREATED_DATE
     FROM CA
     GROUP BY
     CLIENT_ID
     ORDER BY
     MAX(CREATED_DATE)
     ) maxclient
     ON maxclient.CLIENT_ID = ca.CLIENT_ID
     AND maxclient.CREATED_DATE = ca.CREATED_DATE
LEFT JOIN CLIENT cl 
ON ca.CLIENT_ID = cl.CLIENT_ID 
LEFT JOIN (
    SELECT * FROM CATCHMENT_AREA catchment LEFT JOIN SERVICE_PROVIDER sp ON sp.SERVICE_PROVIDER_ID = catchment.SERVICE_PROVIDER_ID
  ) catchment ON ca.CATCHMENT_ID = catchment.CATCHMENT_ID
LEFT JOIN SERVICE_DELIVERY_SITE sds 
ON ca.SERVICE_DELIVERY_SITE_ID = sds.SERVICE_DELIVERY_SITE_ID 
LEFT JOIN USER u 
ON ca.CREATED_BY = u.CA_USER_ID 
WHERE (ca.CREATED_DATE) BETWEEN TO_DATE('2021-01-04', 'yyyy-mm-dd') AND TO_DATE('2021-01-08', 'yyyy-mm-dd')

Oracle没有最重要的条款:

如果希望从所有est\u ca\u客户端\u id获得最大创建日期,请执行以下操作:

select est_ca_client_id, max(created_date) created_date
  from ca_cdr.est_ca
  group by est_ca_client_id
但是如果您想要创建日期的最后一个est_ca_client_id,假设您没有在同一秒内创建客户端,您可以执行以下操作:

select est_ca_client_id
  from ca_cdr.est_ca
 where created_date = (select max(created_date)
                         from ca_cdr.est_ca)

谢谢,只是想知道最大创建日期和最新创建日期之间的区别是什么?他们不是都提供了最新的客户结果吗?