2012-03-26 3 views
0

数以降の関連レコードのレコードを一覧表示する(本Qの目的のために):MySQLのクエリは、私は3つのフィールドに請求書をテーブルと呼ばれるている

invoice_id, company_id, invoice_stamp 

invoice_idはPK、company_idinvoice_stampがあるの指標であります整数形式のunixタイムスタンプ。

私は請求書のリストを取得する最も良い方法を見つけようとしていますが、各請求書の横に、一致するcompany_idがあり、現在のレコードのinvoice_stampよりも大きい請求書の数がカウントされます。

それ自体で結合が必要ですが、FROM句の派生テーブル、INNER JOINまたはLEFT JOINのいずれであっても、これを構成する方法は完全にはわかりません。

だから私の出力がうまくいけば、次のようになります

invoice_id | company_id | future invoice count 
----------------------------------------------- 
1001  | 12345  | 5 
1002  | 67890  | 5 
1003  | 67890  | 4 
1004  | 67890  | 3 
1005  | 12345  | 4 
1006  | 12345  | 3 
1007  | 12345  | 2 
1008  | 67890  | 2 
1009  | 67890  | 1 
1010  | 12345  | 1 
1011  | 12345  | 0 
1012  | 67890  | 0 

さえ可能MySQLでまたは私はMySQLのクライアント側でこのようなものを処理しなければならないということですか?

誰でもアイデアがありますか?あなたは、サブ選択でそれを行うことができます(テストされていないが、動作するはずです)

答えて

1

SELECT invoice_id, company_id, 
    (SELECT count(invoice_id) 
     FROM invoice i2 WHERE i2.invoice_stamp > i.invoice_stamp) 
    AS future_invoice_count 
FROM invoice i; 
+0

バン、それがうまくいきます!私はいつもそれらを忘れています。それのための乾杯、それはロッキング:) – batfastad

関連する問題