2009-08-12 10 views
1

カード番号の残りの/最新の残高を行から取得したいと考えています。以下は表のサンプルです。最新のアイテムを一意に連続して取得するにはどうすればよいですか?

trans_id |  cardnumber |  trans_date  | balance 
--------------------------------------------------------------- 
1   | 1000005240000008 | 2009-07-03 04:54:27 |  88 
2   | 1000005120000008 | 2009-07-04 05:00:07 |  2 
3   | 1000005110000008 | 2009-07-05 13:18:39 |  3 
4   | 1000005110000008 | 2009-07-06 13:18:39 |  4 
5   | 1000005110000008 | 2009-07-07 14:25:32 |  4.5 
6   | 1000005120000002 | 2009-07-08 16:50:51 |  -1 
7   | 1000005240000002 | 2009-07-09 17:03:17 |  1 

結果は次のようになります。

trans_id |  cardnumber |  trans_date  | balance 
--------------------------------------------------------------- 
1   | 1000005110000008 | 2009-07-07 14:25:32 |  4.5 
2   | 1000005120000002 | 2009-07-08 16:50:51 |  -1 
3   | 1000005240000002 | 2009-07-09 17:03:17 |  1 

私はすでにクエリを持っていますが、それはこのような何かを行く:

SELECT cardnumber, MAX(balance), trans_date 
FROM transactions 
GROUP BY cardnumber 

を私は本当にイムが持つ、この上の助けが必要苦労。事前に:( おかげ

マーク

答えて

2

私は、現時点では私の前にMySQLを持っていないが、このような何か作業をする必要があります:。

SELECT latest.cardnumber, latest.max_trans_date, t2.balance 
    FROM 
    (
     SELECT t1.cardnumber, MAX(t1.trans_date) AS max_trans_date 
     FROM transactions t1 
     GROUP BY t1.cardnumber 
    ) latest 
    JOIN transactions t2 ON (
     latest.cardnumber = t2.cardnumber AND 
     latest.max_trans_date = t2.trans_date 
    ) 

はおそらくバージョン5.0.xが必要ですそれよりも良い方法があるかもしれません.3AMです:-D

+1

感謝の仲間、私のために完全に動作します。病気はこれのためのより短いコードを振ってみてください。ところで、その3PMはここ! :P – Marky

0

デベロップとほぼ同じですが、これは別の方法です。この考えは、最新(最大)のトランザクションでカード番号をとるサブクエリを作成する日付を入力し、origと結合しますinalテーブル。これはもちろん、まったく同じ時刻に発生したカードナンバー上の取引がないことを前提としています。

SELECT t1.trans_id, t1.cardnumber, t1.trans_date, t1.balance 
FROM transaction AS t1 
JOIN (SELECT MAX(trans_date), cardnumber FROM transactions) AS t2 ON t2.cardnumber = t1.cardnumber 
0

SELECT * WHERE(カード番号、TRANS_DATE)(カード番号を選択して、MAX(カード番号BYトランザクショングループからTRANS_DATE))における取引から。

+0

私の最初のクエリと同じ結果が得られます。 SELECTカード番号、MAX(残高)、trans_date FROMトランザクションGROUP BYカード番号 助けてくれてありがとう、仲間。 :P – Marky

関連する問題