Sql 检索平均成本
更新:是的,结果是一条记录。我想把它放在firebird(PRODUCTS.PRODU_AVGCOST)中的“computed by”字段中。它只需要最后3次购买一个产品,并计算其平均成本 我有三张桌子,巫婆沿着相关的领域:Sql 检索平均成本,sql,nested,average,firebird,Sql,Nested,Average,Firebird,更新:是的,结果是一条记录。我想把它放在firebird(PRODUCTS.PRODU_AVGCOST)中的“computed by”字段中。它只需要最后3次购买一个产品,并计算其平均成本 我有三张桌子,巫婆沿着相关的领域: PRODUCTS PRODU_ID PK, PRODU_AVGCOST calculated BUYINGS BUYIN_ID PK BUYING_ITENS ITEN_ID PK, ITEN_BUYING_ID FK ITEN_COST numeric 我想从ITE
PRODUCTS
PRODU_ID PK,
PRODU_AVGCOST calculated
BUYINGS
BUYIN_ID PK
BUYING_ITENS
ITEN_ID PK,
ITEN_BUYING_ID FK
ITEN_COST numeric
我想从ITEN\u cost
字段中获取最近三次购买的平均成本,在产品
表的PRODU\u AVGCOST
字段中使用“选择”
我在table产品上尝试了如下操作,但没有成功
select avg(iten_cost) from buying_itens b
where (select first 3 (iten_cost) from buying_itens where c.iten_id = produ_id)
order by b.iten_id desc
假设您希望将此值用于单个产品(假设ACTUAL\u PRODU\u ID
为该值),您可以执行以下操作:
select avg(a.iten_cost)
from (
select first 3 iten_cost
from buying_itens
where produ_id = ACTUAL_PRODU_ID
order by iten_id desc
) a
据我所知,您问题中的数据模型不完整(或者我看不到产品
和购买
是如何链接的),因此我将产品id
添加到购买
如果要在一个查询中对所有产品执行此操作,事情会变得更复杂。请注意,如果某项操作不起作用,则还应包含错误消息(在本例中,该消息可能是未知标记(语法错误),因为您的查询不遵循任何有效的SQL语法)。