我正面临SSAS的一个小问题,我正在尝试从维度表中添加一个列到我的事实表«Fact_Ventes»。
这是我的疑问:
Select dc.[CuNumber]
from [Warehouse].[dbo].[Dim_Clients] dc
inner join [Warehouse].[dbo].[FACT_Ventes] fv on fv.SK_Clients = dc.SK_Clients
这是我得到的错误:
子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。
任何人都可以帮我吗?
答案 0 :(得分:1)
我在这里找到了解决方案:http://msdn.microsoft.com/en-us/library/ms174859.aspx我想分享它,似乎我的查询需要在括号之间,我将内部联接更改为where子句,它的工作正常:
(SELECT Dim_Clients.CuNumber 来自Dim_Clients 其中Dim_Clients.SK_Clients = FACT_Ventes.SK_Clients)
答案 1 :(得分:0)
命名计算的表达式应返回标量值。你的会返回一个结果集。
我会放弃使用命名计算和命名查询,并通过SQL视图访问所有数据。
答案 2 :(得分:0)
如果我理解正确,您只是尝试使用另一个表中的值更新Fact_Ventes表。一个简单的UPDATE FROM应该可以做到这一点:
UPDATE [Warehouse].[dbo].[FACT_Ventes]
SET fv.CuNumber = dc.[CuNumber]
FROM [Warehouse].[dbo].[FACT_Ventes] fv
INNER JOIN [Warehouse].[dbo].[Dim_Clients] dc ON fv.SK_Clients = dc.SK_Clients
这假设您已经更新了Fact_Ventes架构以包含新列。