2017-04-21 75 views
1

我需要我的項目幫助來生成報告。它只是顯示客戶的最新交易日期列表。我用左連接表CUSTOMER和TRANSACTIONS。如何顯示最近交易日期的客戶

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

當然,它會根據客戶的交易次數顯示多個客戶記錄。我怎樣才能得到每個客戶的最新交易?提前致謝!

+1

給通過一個什麼樣的表 – Hacker

+3

郵政細節trasection命令也標記您的數據庫 – JohnHC

+2

desc中 –

回答

1

或許您可以使用這樣的:

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

我明白了。完美的作品。謝謝! –

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 
1

試試這個您加入後的數據。 abc數據是每個客戶有多個交易的最終數據。

1

從您發佈的SQL中看來,Transactions表已經包含Customer 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曾表示,這將是更有幫助,如果你在表中的數據提供了更多的細節。

+0

是的你是對的。謝謝 –

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

請編輯你的答案,包括一些解釋。僅有代碼的答案對未來SO讀者的教育很少。您的回答是在低質量的審覈隊列中。 – mickmackusa

相關問題