• To get values from other tables or columns of the same table but different row, you should use a function:

    CREATE TABLE [dbo].[a2]

    (

    [a1ID] [int] NULL,

    [col3] AS (a1ID^2)

    )

    GO

    create function get_a2_col3(@a1id int)

    returns int

    as

    begin

    return (select col3 from [dbo].[a2] where a1ID = @a1id)

    end

    go

    CREATE TABLE [dbo].[a3]

    (

    [a3ID] [int] NULL,

    [col4] AS dbo.get_a2_col3(a3ID) --(dbo.a2.col3 - 1)

    )

    GO

    drop table [a2]

    drop table [a3]