0
類似的問題已被要求,但我會給一個簡短的介紹。 在SQL Server中有3個表格:MDX交叉路口 - 如何?
- Order(Id,Date);
- 產品(Id,Name);
- OrderRefProduct(Id,OrderId,ProductId);
OrderRefProduct是一個多對多的表格,因爲一個產品可以有不同的順序,不同的產品可以是一個順序。
所有這些都被粘貼到OLAP多維數據集中,訂單和產品作爲維度和OrderRefProduct作爲事實。我們需要得到這樣的SQL查詢的輸出結果將提供:
SELECT ProductId, COUNT(*) as [Count]
FROM OrderRefProduct
GROUP BY ProductId
的correspondind MDX查詢是相當簡單的,給出的立方體正確建:
SELECT
NON EMPTY { [Measures].[Order Ref Product Count] } ON COLUMNS,
NON EMPTY { ([Product].[Product ID].[Product ID].ALLMEMBERS) } ON ROWS
FROM [Sales]
而且兩者的結果是:
ProductId Count
1 7
2 7
3 5
4 6
現在,這裏的問題。 我要選擇有兩種產品3和4 SQL訂單數:
select ProductId, Count(*) as [Count]
from OrderRefProduct
where [OrderId] in
(SELECT S.OrderID FROM
(select * from OrderRefProduct where ProductID=3) as S
INNER JOIN (select * from OrderRefProduct where ProductID=4) as T on T.OrderId = S.OrderID)
Group by ProductId
結果:
ProductId Count
1 1
2 1
3 3
4 3
不能在MDX查詢重現此。到目前爲止我所能達到的是FULL JOIN,而我需要一個INNER。 任何幫助,將不勝感激。 測試溶液可以找到here。