こんにちは私は以下の構造のテーブルを持っています。Web2py DAL最新の日付のレコードを見つける
表名:DOCUMENTS
サンプルテーブルの構造:
ID | UIN | COMPANY_ID | DOCUMENT_NAME | MODIFIED_ON |
---|----------|------------|---------------|---------------------|
1 | UIN_TX_1 | 1 | txn_summary | 2016-09-02 16:02:42 |
2 | UIN_TX_2 | 1 | txn_summary | 2016-09-02 16:16:56 |
3 | UIN_AD_3 | 2 | some other doc| 2016-09-02 17:15:43 |
私はIDが1とDOCUMENT_NAME "txn_summary" である同社の最新の変更されたレコードのUINを取得したいです。
これは動作しますPostgreSQLのクエリです:
select distinct on (company_id)
uin
from documents
where comapny_id = 1
and document_name = 'txn_summary'
order by company_id, "modified_on" DESC;
このクエリは私に正しいUIN_TX_2をフェッチします。
私はweb2py DALを使用してこの値を取得しています。いくつかの研究の後、私はこれを行うには成功している:
今fmax = db.documents.modified_on.max()
query = (db.documents.company_id==1) & (db.documents.document_name=='txn_summary')
rows = db(query).select(fmax)
「行」は最大値を有するmodified_on日付の値のみが含まれています。私は "行"内に最大の日付を持つレコードを取得したい。方法を提案してください。ヘルプは非常に感謝しています。
私の要件は、各document_nameの各company_idごとにそのようなレコードを見つけるために拡張されています。
各company_id/document_nameの組み合わせに対して最後に変更されたレコードを取得する1つのクエリが必要な場合、または各組み合わせに対して個別のクエリを実行する場合は、あなたはあなたが望む正確な結果のSQL式を表示できますか? – Anthony
こんにちは@Anthony、後悔して申し訳ありません。はい、各company_id/document_nameの組み合わせに対して最後に変更されたレコードが必要です。私は個々の(company_id/document_name)の組み合わせのリストでforループを実行することを望んでいました。 –