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

但它会弹出一个错误 Invalid token。

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

这是火鸟版本 1 的问题吗?

如何在没有任何视图、过程、计算域等的情况下进行分组工作?因为我不喜欢改变那个数据库!

4

1 回答 1

3

首先 - 提取返回一个 smallint 或十进制值,因此您的 where clousure 是错误的。

第二 - 从 1.5 开始支持子查询

尝试在您的第一个查询中更改SELECT EXTRACT(...) as mnt(添加为)或尝试使用列索引分组,例如

按 1 分组

按 1 订购

Firebird 1.0 sql 一致性是您可能感兴趣的东西,但这是我能找到的唯一一个: http ://www.firebirdsql.org/en/sql-conformance/

如果您有任何机会,我建议您更新到最新版本的 FB

于 2012-05-10T13:50:29.427 回答