【问题标题】:how to select from query result in Firebird 1.5如何从 Firebird 1.5 中的查询结果中进行选择
【发布时间】:2015-12-30 07:37:11
【问题描述】:

我收到了 Firebird 1.5 的查询:

select * from (
select
ddddd.name,
gggg.land,
dd.maskenkey,
ddd.name,
Sum(b.epreis*a.menge),  
Sum((kx.epreis / lx.kurs) * a.menge),
sum(case when b.bverpa_id='1' then (a.menge*e.p_volume)/e.pcs_box else a.menge*e.P_PCS_20ST end) as jumlah 
from brrcp a  
left outer join baufpo b on a.baufpo_id_aufnrpos = b.id 
left outer join brrc c on a.brrc_id_rgnr = c.id  
left outer join bauf d on b.bauf_id_linkkey = d.id 
left outer join bkunde dd on d.bkunde_id_kunr = dd.id  
left outer join badr ddd on dd.badr_id_adrnr = ddd.id 
left outer join bvert dddd on d.bvert_id = dddd.id  
left outer join badr ddddd on dddd.badr_id = ddddd.id 
left outer join bbesp kx on b.id = kx.baufpo_id_aufpos  
left outer join bbes aa on kx.bbes_id_linkkey = aa.id 
left outer join bsal yy on kx.bsal_id = yy.id  
left outer join bwaer lx on kx.bwaer_id_waehrungk = lx.id  
left outer join bplz zz on ddd.bplz_id_landplz = zz.id 
left outer join bland gggg on zz.bland_id_landkennz = gggg.id 
left outer join bsa e on a.bsa_id_artnr = e.id  
where c.eta_shipment between '01/01/2015' and '6/30/2015'
and dd.maskenkey starting 'AS-' and d.cancel = 'N' and d.confirm = 'N' and aa.status_po <> 'C'  
and d.auftrag = 'J' and a.rg_buchungsart Is Null
group by ddddd.name,gggg.land,dd.maskenkey,ddd.name) abc

如何修复它的结构,因为当我想执行这个查询时,我会得到错误?谢谢 !!

**Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 1.
select.**

【问题讨论】:

  • 我强烈建议使用更有意义的别名
  • 我继续我朋友的工作。不是我自己的
  • 你为什么还要使用SELECT * FROM (SELECT ... ) 在这种情况下这是一个不必要的间接级别。

标签: sql select firebird


【解决方案1】:

您在 FROM 子句中使用了一个 select,这称为 derived table,您不能在 Firebird 1.5 或更早版本中使用派生表。

此功能was introduced 9 years ago in Firebird 2.0。所以如果你想在你的查询中使用它,你应该升级(如果你这样做,升级到 Firebird 2.5.5)。在升级之前,请务必通读 Firebird 2.0、2.1 和 2.5 release notesFirebird 2 Migration & installation Notes,了解您需要考虑的任何兼容性更改。

您问题中的查询本身根本不需要派生表,只需从您的查询中删除外部SELECT * FROM (....) abc,它具有 - 正如它所发布的那样 - 没有附加值。

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多