0

クエリを実行していますが、サポートが必要です。

クエリの一部は次のとおりです。

AND count_sub>2 AND count_del<=2 

私がやりたいのは、このクエリで2つの変数を取得し、IFが続行count_subよりも大きいことです。5+count_del

例:

count_sub = 10
count_del = 4

違いは6なので、結果が返されますが、次の場合:

count_sub = 4
count_del = 1

違いは3で、それは何も返しません

ありがとう

4

2 に答える 2

0

次の解決策をお勧めします。

SELECT a.id
FROM tbl1 a
INNER JOIN (SELECT id, count_sub - count_del AS diff FROM tbl1) b ON b.id = a.id
WHERE b.diff > 5

WHERE節 ( ) で算術演算を使用することによりWHERE count_sub - count_del > 5 、オプティマイザーが列のインデックスを使用するのを防ぎます。WHERE一般的なルールは、算術演算を there句からできるだけ遠くに移動することです。派生テーブルへの演算を派生列に移動する方が効率的です。

于 2012-09-10T20:16:26.263 に答える
0

違いを照会するだけです:

WHERE count_sub - count_del > 5
于 2012-09-10T19:02:34.470 に答える