从表中选择字段,其名称来自其他选择

时间:2016-02-11 11:21:16

标签: sql

我的第二个问题很容易解释,但我很难解决。

当这个table_Name来自另一个Select

时,我想从table_Name中选择值

以此为例:

首先选择

SELECT
    (SELECT ad_table.tablename
    FROM ad_table
    WHERE ad_table.ad_table_id =fact_acct.ad_table_id
    )
  FROM fact_acct

结果= C_Invoice

第二次选择

 SELECT documentNo
    FROM
      (SELECT
        (SELECT ad_table.tablename
        FROM ad_table
        WHERE ad_table.ad_table_id =fact_acct.ad_table_id
        )
      FROM fact_acct
      ) 

此选择必须与:SELECT documentNo from C_Invoice

相同

所有想法?

1 个答案:

答案 0 :(得分:1)

使用动态SQL查询 试试这个

DECLARE @TableName NVARCHAR(MAX)
DECLARE @Sql NVARCHAR(MAX)

SELECT @TableName = ad_table.tablename
FROM ad_table
WHERE ad_table.ad_table_id =fact_acct.ad_table_id

SET @Sql='SELECT documentNo FROM '+@TableName

EXEC(@Sql)