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

时间:2017-04-21 10:23:31

标签: sql

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

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

当然,它会根据客户的交易次数显示多个客户记录。如何才能获得每位客户的最新交易?提前谢谢!

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

使用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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="checkbox" id="chkbox1" value="a" class="ckb abc" />
<label for="chkbox1">A</label>

<input type="checkbox" id="chkbox2" value="b" class="ckb def" />
<label for="chkbox2">B</label>

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

答案 4 :(得分:0)

SELECT *
  FROM (
      SELECT customer, transactiondate
       FROM abc
      ORDER BY transactiondate)
 result
 GROUP BY customer,transactiondate