1

次のクエリを実行しようとしていますが、機能していません!

select extract(month from flight_date_time) mnt from T_PEREXOD where extract( year from flight_date_time)='2012'
group by mnt 
order by mnt

サブクエリもやってみた

select mnt from (select extract(month from flight_date_time) AS mnt from T_PEREXOD)
group by mnt
order by mnt

しかし、無効なトークンというエラーが表示されます。

Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 18.
select.

それはFirebirdバージョン1の問題ですか??

ビュー、プロシージャ、計算フィールドなどを使用せずにグループ化を機能させるにはどうすればよいでしょうか。そのデータベースを変更したくないからです。

4

1 に答える 1

3

最初-Extractはsmallintまたはdecimal値を返すため、closureが間違っています。

2番目-サブクエリは1.5以降でサポートされます

最初のクエリで変更SELECT EXTRACT(...) as mnt(名前を付けて追加)するか、次のような列インデックスのグループ化を使用してみてください

GROUP BY 1

1で注文する

Firebird 1.0 sql適合性はあなたが興味を持っているかもしれないものですが、これは私が見つけることができる唯一のものです: http ://www.firebirdsql.org/en/sql-conformance/

機会があれば、FBの最新リリースに更新することをお勧めします

于 2012-05-10T13:50:29.427 に答える