2010-12-22 48 views
0

是否有可能将命名计算中的行的值用作另一个命名计算的T-SQL的一部分?引用另一个命名计算中的命名计算

我正在使用BIDS修改我拥有的SS 2005 SSAS多维数据集的数据源视图。我用命名计算到的AccountID另一个表关联到每一行:

(SELECT c.ACCOUNTID FROM sysdba.CONTACT c WHERE c.CID ={current-table}.CID) 

这些计算在几秒钟内运行。如果我有另一个命名的计算嵌套该命令,它运行速度非常慢,需要几分钟时间。一个例子是:

(SELECT a.TYPE FROM ACCOUNT a WHERE a.ACCOUNTID = (SELECT c.ACCOUNTID FROM sysdba.CONTACT c WHERE c.CID ={current-table}.CID)) 

是否有某种方式来执行类似:

(SELECT a.TYPE FROM ACCOUNT a WHERE a.ACCOUNTID = {current-table}.AccountID) 

显然,当我尝试它不工作。它告诉我这是一个无效的列ID。

回答

1

试试这个

SELECT a.TYPE 
FROM ACCOUNT a 
JOIN sysdba.CONTACT c ON a.ACCOUNTID = c.ACCOUNTID 
WHERE c.CID ={current-table}.CID 
+0

抛出: >延迟准备,无法完成。声明无法准备。 关键字“from”附近的语法不正确。 我试过INNER JOIN而不是JOIN FROM,但那也很慢。 – 2010-12-22 22:47:18