1
次のクエリを使用しています。ユニオンクエリの1つにフィールドを0にし、他の部分でサブクエリから平均を求めます。 私はSELECTサブクエリを使用する必要があります。すべてのフィールドは、データベース内のフロートタイプですが、私はまだデータ・タイプが不明得るUNIONを使用したFirebird SQL文では、キャストの場合でもデータ型が不明です
SELECT A,B, CAST(0 as FLOAT) as C
FROM TABLE1
WHERE CONDITION=0
UNION
SELECT T1.A, T1.B, (SELECT AVG(T3.C+T3.E) FROM T3 WHERE T3.A = T1.A) as C
FROM TABLE1 T1
WHERE T1.CONDITION=1
:私はそれが結果セット(実際のクエリは、はるかに複雑である)で倍増したレコードを得られますよう結合を使用することはできません。
AVG(T3.C+T3.E)
のデータ型を知る方法はありますか?
私の回避策はCAST(0 as FLOAT) as C
の代わりに(T1.C*0) as C
を使用することです。
のFirebirdのバージョンは何、および何であるデータベースの方言(1または3)? –
Firebird 1.5の方言3 –
エラーはどうなりますか? –