如何显示最新交易日期的客户
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 读者几乎没有作用。您的答案因质量低劣而在审核队列中。以上是关于如何显示最新交易日期的客户的主要内容,如果未能解决你的问题,请参考以下文章