sql - SQL 查询帮助 - 使用 INTERBASE 的子查询

标签 sql select firebird interbase

我有以下问题

SELECT *
FROM
              ( select distinct
                      r1.rep_code,
                      r1.contact_id,
                      c1.Name,
                      e1.year_num,
                      e1.period_num
                   from
                      entry e1
                         join rep r1 ON e1.rep_code = r1.rep_code
                            join contact c1 on r1.contact_id = c1.contact_id
                   where
                          e1.entry_type = 'SJOB'
                      and e1.age = 0 )

我在第 3 行不断收到错误

Token unknown - line 3, char 15
select

顺便说一句,我正在使用interbase IBConsole,请您给点建议!!

最佳答案

显然,Interbase does not support derived tables (从(SELECT)中选择)。或者,至少,您正在使用的版本(我不能确定,因为我不使用 Interbase 已经有一段时间了)。此功能是在 Firebird 2.0 中添加的。您有两种选择:

  • 改变你的方法,不要使用 SELECT FROM (SELECT)(派生表)

  • 升级到 Firebird

如果您对此有自主权,那么您应该明确选择选项 #2。

顺便说一句,Firebird 不要求您为派生表声明别名,尽管如果您将派生表与其他表/派生表联接,这最终将是必要的

关于sql - SQL 查询帮助 - 使用 INTERBASE 的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408627/

相关文章:

stored-procedures - 获取存储过程参数的类型

visual-studio - 使用 Firebird 的 Visual Studio 数据库项目

sql - 数据库触发器比查询慢吗?

sql - 在 Oracle 中检索具有一个条目的行

sql - 使用 IN 关键字查询

mysql - 合并两个表中选定的列并将其存储在数据库中的另一个表中

c++ - 使基于选择的循环尽可能响应

javascript - 通过 jquery 上下移动选择选项

delphi - 使用按角色过滤的 View Firebird

sql - 将 guids 转换为数值