如何显示最新交易日期的客户

Posted

技术标签:

【中文标题】如何显示最新交易日期的客户【英文标题】:How to display customers with latest transaction date 【发布时间】:2017-04-21 10:23:30 【问题描述】:

我的项目需要帮助才能生成报告。它只是显示具有最新交易日期的客户列表。我对表 CUSTOMER 和 TRANSACTIONS 使用了左连接。

FROM CUSTOMER CUST
LEFT JOINT TRANSACTIONS TXN
ON TNX.CUST_ID = CUST.ID

当然,它会根据客户的交易量显示多条客户记录。我怎样才能只获得每个客户的最新交易?提前致谢!

【问题讨论】:

通过 desc 给出截断命令 发布表格中内容的详细信息 同时标记您的数据库 添加一些示例表数据和预期结果。 (所有以及格式化的文本。) 【参考方案1】:

你可能可以使用这样的东西:

SELECT MAX(TNX.Date)
FROM CUSTOMER CUST
LEFT JOINT TRANSACTIONS TXN
ON TNX.CUST_ID = CUST.ID
GROUP BY CUST_ID

【讨论】:

【参考方案2】:

使用max

select Cust.SomeColumn, 
       max(txn.SomeDateColumn) as MaxDate
FROM CUSTOMER CUST
LEFT JOINT TRANSACTIONS TXN
ON TNX.CUST_ID = CUST.ID
GROUP BY Cust.SomeColumn -- include every column that isn't being aggregated

【讨论】:

【参考方案3】:

加入数据后试试这个。 abc 数据是每个客户有多个交易的最终数据。

select distinct customer,min(transaction) as b from abc
group by customer;

【讨论】:

【参考方案4】:

从您发布的 SQL 看来,Transactions 表似乎已经包含客户 ID 和交易。我猜你想加入这些表的原因是通过名称而不是 ID 来引用客户。在这种情况下,您的 SQL 需要如下所示:

SELECT DISTINCT
CUST.NAME, --Your field names may differ
TXN.TRANSACTION_DATE --Your field names may differ

FROM 
CUSTOMER CUST
LEFT JOIN TRANSACTIONS TXN
ON TNX.CUST_ID = CUST.ID

ORDER BY
TXN.TRANSACTION_DATE DESC

正如 JohnHC 所说,如果您提供有关表格中数据的更多详细信息,将会更有帮助。

【讨论】:

【参考方案5】:
SELECT *
  FROM (
      SELECT customer, transactiondate
       FROM abc
      ORDER BY transactiondate)
 result
 GROUP BY customer,transactiondate

【讨论】:

请编辑您的答案以包含一些解释。仅代码的答案对教育未来的 SO 读者几乎没有作用。您的答案因质量低劣而在审核队列中。

以上是关于如何显示最新交易日期的客户的主要内容,如果未能解决你的问题,请参考以下文章

如何根据braintree中的客户ID在交易过程中显示特定客户已保存的信用卡?

如何向推荐客户查询一位客户并显示其所有交易

从余额交易中获得条纹支付

标记活跃客户 - 每月至少一笔交易

MS Access 查询以显示上次交易

使用 Excel 显示日期范围内的出现次数