我的项目需要帮助才能生成报告。它只是显示客户列表及其最新交易日期。我使用左连接表CUSTOMER和TRANSACTIONS。
FROM CUSTOMER CUST
LEFT JOINT TRANSACTIONS TXN
ON TNX.CUST_ID = CUST.ID
当然,它会根据客户的交易次数显示多个客户记录。如何才能获得每位客户的最新交易?提前谢谢!
答案 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