2012-02-08 18 views
0

結果を計算された列でソートしたクエリを作成するにはどうすればよいですか? (私は、ソートを行うために、他の列に結果を計算事前にすることはできません!)GAEデータストアで計算された列で並べ替え

例:私はこのクエリを実行することができ

TABLE products(
    product_id INTEGER  NOT NULL, 
    description VARCHAR(255) NOT NULL, 
    price  DECIMAL(5,2) NOT NULL, 
    qty   INTEGER  NOT NULL, 
); 

:そのようなRDBMSのテーブルで

SELECT product_id, (price * qty * {{current_tax}}) AS custom_calc 
FROM  products 
ORDER BY custom_calc DESC; 

イム私は、変数を持っている私の問題、この場合は{{}} current_tax。この方法では、ソートを行うために結果を事前に計算することはできません。これは、変数がいつでも変更できるためです。

このような問題には洗練された解決策がありますか?

タンク!

+0

できません。データストアはこれをサポートしていません。 (あなたは 'price * quantity'をあらかじめ計算することはできますが、確かに' current_tax'の値はソート順に影響しません) – geoffspear

答えて

2

documentationからわかるように、GQLはSELECT文の算術演算をサポートしていません。

GQLは、SQLのバックグラウンドから来ている人にとっては便利ですが、低レベルのデータストアAPIは索引付けされたk/vストアによく似ています。

current_taxの場合は、常にそれがとにかく順序を変更することはありませんprice * qtyに印加される正の係数であるので、私は、新しい製品分野としてprice * qtyを格納お勧めtotal_priceとそれのためにDESCインデックスを作成します。

+0

私の例はあまり良くないと思います。私はgithubで私のプロジェクトを調査して公開します。このように私は問題を説明することができます。 –

+0

私の問題は次のようなものです:http://code.google.com/intl/ja/appengine/articles/overheard.html –

関連する問題