我具有表示合同的参数的表 - 包括其通过齿顶随时间的变化。第一齿顶是表示参数时合同被签订第一一个“特殊”的附录。

下面的表应该如何看起来像:

ID ProjectID BeginDate   DeadlineMonths DeadlineDate
1  20        20-12-2006  24             <computed= 20-12-2006 + 24 months>
2  23        12-03-2007  12             <computed= 12-03-2007 + 12 months>
3  20        06-09-2007  36             <computed= **20-12-2006** + 36 months>

专案编号是FK到Projects表,其主键也被称为专案编号。

我想DeadlineDate是计算字段,像这样计算:

DeadlineDate COMPUTE BY ((
    select first 1 AddMonth(contract.BeginDate, DeadlineMonths)
    from addendums contract
    where contract.projectid = projectid
    order by contract.BeginDate ))

的问题是,在contract.projectid = projectid第二专案编号必须引用被计算当前行,而不是当前行中的选择语句(这是一样的contract.projectid)。

我使用火鸟。我需要的列中的表而不是因为使用的数据库应用程序中的ORM问题的SELECT语句。

有帮助吗?

解决方案

只需与当前表中的表名的前缀字段:

DeadlineDate COMPUTED BY ((
select first 1 AddMonth(contract.BeginDate, DeadlineMonths)
from addendums contract
where contract.projectid = projects.projectid
order by contract.BeginDate ))

其他提示

你能在你的查询创建一个视图,并在ORM使用它?

CREATE VIEW v_addendums
AS
SELECT  ID, ProjectID, BeginDate, DeadlineMonths, 
        (
        SELECT  first 1 AddMonth(contract.BeginDate, DeadlineMonths)
        FROM    addendums contract
        WHERE   contract.projectid = a.projectid
        ORDER BY
                contract.BeginDate
        )
FROM    addendums a
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top