我有一個包含以下列的交易表: MEMBERID, 的TransactionID, 日期, MethodOfPayment, +多了很多列如何使用GROUP返回同一行的多個列中的T-SQL BY
主鍵由MemberID和TransactionID組成。我需要一個由MemberID將這些行分組的最新日期的查詢。這很簡單,但另外我需要最後一個日期的其餘列,例如MethodOfPayment。我正在尋找最簡單的方法來完成此操作。
我知道這是我可以做到這一點的一種方式,但如果必須爲每個列包含一個子查詢,查詢會變得非常長。我的直覺告訴我必須有更好的方法。
SELECT
MemberID,
MAX(Date) AS Date,
(
SELECT TOP(1) MethodOfPayment
FROM Transactions
WHERE MemberID = t.MemberID
ORDER BY Date DESC
) AS MethodOfPayment
FROM Transactions t
GROUP BY MemberID
您使用的是哪個版本的SQL Server的另一種方式? – Lamak 2011-04-12 20:48:37
SQL Server 2008 R2 – 2011-04-13 19:11:51