Sql 如何使用2个联接表查找最大日期

Sql 如何使用2个联接表查找最大日期,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,请帮忙!!! 我使用的是SQL Dev 2.1,我想找到加入表的最新日期。我的问题如下:- 我想获得最新的债务催收步骤交易日期 因为有多个日期与同一发票号有关,但针对债务_收款_步骤_V.说明发布了不同的评论 SELECT AR_INVOICE_INQ_V.CLIENT CLIENT, AR_INVOICE_INQ_V.CLI_NAME CLI_NAME, AR_INVOICE_INQ_V.PARTNER PARTNER, AR_INVOICE_INQ_V.PAR_NAME PAR_NAME,

请帮忙!!! 我使用的是SQL Dev 2.1,我想找到加入表的最新日期。我的问题如下:-

我想获得最新的债务催收步骤交易日期 因为有多个日期与同一发票号有关,但针对债务_收款_步骤_V.说明发布了不同的评论

SELECT AR_INVOICE_INQ_V.CLIENT CLIENT,
AR_INVOICE_INQ_V.CLI_NAME CLI_NAME,
AR_INVOICE_INQ_V.PARTNER PARTNER,
AR_INVOICE_INQ_V.PAR_NAME PAR_NAME,
AR_INVOICE_INQ_V.MANAGER MANAGER,
AR_INVOICE_INQ_V.REFERENCE REFERENCE,
AR_INVOICE_INQ_V.STATUS_CODE STATUS_CODE,
AR_INVOICE_INQ_V.INVOICE_DATE INVOICE_DATE,
AR_INVOICE_INQ_V.TIME_BILLED TIME_BILLED,
AR_INVOICE_INQ_V.GROUP_CLIENT_CODE GROUP_CLIENT_CODE,
AR_INVOICE_INQ_V.GRPCLI_NAME GRPCLI_NAME,
AR_INVOICE_INQ_V.INVOICE_BALANCE,
SUBSTR(AR_INVOICE_INQ_V.MANAGER, 3, 2) CENTRE,
DEBT_COLLECTION_STEPS_V.DESCRIPTION,
MAX (BILLING_TRANSACTIONS_V.SEQUENCE_CODE),
DEBT_COLLECTION_STEPS_V.TRANSACTION_DATE
FROM AR_INVOICE_INQ_V
LEFT JOIN DEBT_COLLECTION_STEPS_V
ON DEBT_COLLECTION_STEPS_V.INVOICE_NUMBER = AR_INVOICE_INQ_V.REFERENCE
JOIN BILLING_TRANSACTIONS_V
ON BILLING_TRANSACTIONS_V.INVOICE_OR_CN_NUMBER = AR_INVOICE_INQ_V.REFERENCE
WHERE AR_INVOICE_INQ_V.INVOICE_BALANCE         >0
AND AR_INVOICE_INQ_V.MANAGER BETWEEN 'AAAA' AND 'AZZZ'
GROUP BY AR_INVOICE_INQ_V.CLIENT,
AR_INVOICE_INQ_V.CLI_NAME,
AR_INVOICE_INQ_V.PARTNER,
AR_INVOICE_INQ_V.PAR_NAME,
AR_INVOICE_INQ_V.MANAGER,
AR_INVOICE_INQ_V.REFERENCE,
AR_INVOICE_INQ_V.STATUS_CODE,
AR_INVOICE_INQ_V.INVOICE_DATE,
AR_INVOICE_INQ_V.TIME_BILLED,
AR_INVOICE_INQ_V.GROUP_CLIENT_CODE,
AR_INVOICE_INQ_V.GRPCLI_NAME,
AR_INVOICE_INQ_V.INVOICE_BALANCE,
SUBSTR(AR_INVOICE_INQ_V.MANAGER, 3, 2),
DEBT_COLLECTION_STEPS_V.DESCRIPTION,
DEBT_COLLECTION_STEPS_V.TRANSACTION_DATE;

用一个查询替换左联接,该查询获取每个发票号的最大(交易日期)

这会给你你想要的:

select AR_INVOICE_INQ_V.CLIENT CLIENT,
  AR_INVOICE_INQ_V.CLI_NAME CLI_NAME,
  AR_INVOICE_INQ_V.PARTNER PARTNER,
  AR_INVOICE_INQ_V.PAR_NAME PAR_NAME,
  AR_INVOICE_INQ_V.MANAGER MANAGER,
  AR_INVOICE_INQ_V.REFERENCE REFERENCE,
  AR_INVOICE_INQ_V.STATUS_CODE STATUS_CODE,
  AR_INVOICE_INQ_V.INVOICE_DATE INVOICE_DATE,
  AR_INVOICE_INQ_V.TIME_BILLED TIME_BILLED,
  AR_INVOICE_INQ_V.GROUP_CLIENT_CODE GROUP_CLIENT_CODE,
  AR_INVOICE_INQ_V.GRPCLI_NAME GRPCLI_NAME,
  AR_INVOICE_INQ_V.INVOICE_BALANCE,
  SUBSTR(AR_INVOICE_INQ_V.MANAGER, 3, 2) CENTRE,
  DEBT_COLLECTION_STEPS_V.DESCRIPTION,
  MAX(BILLING_TRANSACTIONS_V.SEQUENCE_CODE),
  DC.TRANSACTION_DATE
from AR_INVOICE_INQ_V
left join (SELECT INVOICE_NUMBER, MAX(TRANSACTION_DATE) FROM DEBT_COLLECTION_STEPS_V GROUP BY INVOICE_NUMBER) DC on DC.INVOICE_NUMBER = AR_INVOICE_INQ_V.REFERENCE
join BILLING_TRANSACTIONS_V on BILLING_TRANSACTIONS_V.INVOICE_OR_CN_NUMBER = AR_INVOICE_INQ_V.REFERENCE
where AR_INVOICE_INQ_V.INVOICE_BALANCE > 0
  and AR_INVOICE_INQ_V.MANAGER between 'AAAA' and 'AZZZ'
group by AR_INVOICE_INQ_V.CLIENT,
  AR_INVOICE_INQ_V.CLI_NAME,
  AR_INVOICE_INQ_V.PARTNER,
  AR_INVOICE_INQ_V.PAR_NAME,
  AR_INVOICE_INQ_V.MANAGER,
  AR_INVOICE_INQ_V.REFERENCE,
  AR_INVOICE_INQ_V.STATUS_CODE,
  AR_INVOICE_INQ_V.INVOICE_DATE,
  AR_INVOICE_INQ_V.TIME_BILLED,
  AR_INVOICE_INQ_V.GROUP_CLIENT_CODE,
  AR_INVOICE_INQ_V.GRPCLI_NAME,
  AR_INVOICE_INQ_V.INVOICE_BALANCE,
  SUBSTR(AR_INVOICE_INQ_V.MANAGER, 3, 2),
  DEBT_COLLECTION_STEPS_V.DESCRIPTION,
  DC.TRANSACTION_DATE;

你能发布你的输入表结构和所需的o/P吗?这不起作用,我仍然在debt_collection_steps_V.description列中得到一个重复的条目,因为有两个注释是用不同的交易日期输入的。因此,这给了我发票余额上的重复值,然后您必须使用选择id和MAX(日期)的查询进行内部联接,并将其与当前查询联接,但为了帮助您,您必须向问题中添加更多信息。我建议使用示例数据创建sqlfiddle,运行sqlfiddle并确保没有错误,复制地址并将其放入问题中。我建议您创建sqlfiddle(表结构,示例数据),然后将其放入问题中。然后您还添加了您的具体需求