2016-11-02 4 views
0

は、これが私の現在のデータモデルである - > part of data modelDAX SUM

私はメジャーを作成する上での助けが必要です。私が作成したい

尺度は、時間間隔で旅行を持っていた船の全体的な能力を示しただけでなく、部屋のタイプに基づいて、総容量を見ることができるはずです。

私はのDAX相当を得ることに興味を持っています:

SELECT SUM(sc.capacity) 
FROM Reporting.Trips t 
    JOIN Reporting.Dates d ON d.DateId = t.DateId 
    JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId 
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15 

ORタイプ

SELECT SUM(sc.capacity) 
FROM Reporting.Trips t 
    JOIN Reporting.Dates d ON d.DateId = t.DateId 
    JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId 
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15 and sc.CabinTypeId = 11 

あたり、私はこの方法でメジャーを定義しようとした:

Total Rooms:=CALCULATE (SUM ('Ship Capacities'[Ship Capacity])) 

私が持っています

0123:これはのT-SQLの同等を出力していることがわかります
SELECT SUM(Capacity) 
FROM 
(
SELECT DISTINCT sc.* 
FROM Reporting.Trips t 
    JOIN Reporting.Dates d ON d.DateId = t.DateId 
    JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId 
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15 
) x 

ORタイプごと

SELECT SUM(Capacity) 
FROM 
(
SELECT DISTINCT sc.* 
FROM Reporting.Trips t 
    JOIN Reporting.Dates d ON d.DateId = t.DateId 
    JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId 
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15 and sc.CabinTypeId = 11 
) x 

これらは、クエリの結果である - >Query results

感謝。

Total Rooms:=CALCULATE (
    SUMX (
     'Ship Capacities', 
     'Ship Capacities'[Ship Capacity] 
      * COUNTROWS (FILTER (Trips, AND(Trips[Sailed] = TRUE(),Trips[ShipId] = 'Ship Capacities'[ShipId]))) 
    ) 
) 

お知らせCOUNTROWS:

+0

あなたは、これはあなたがしようとした措置の結果であることを確認していますか?明示的なフィルタを使用していない限り、YearとFiscalWeekをフィルタリングしないようです。それは問題ですか? –

+0

はい、値を比較しました。私は明示的なフィルタを使用しています。私はモデルに含まれているテーブルを持っているパラメータシートを持っています。これは、このような方法で対策をフィルタリング:日付[年度] = VALUES(パラメータ[今期])、日付[会計週]はVALUES(パラメータ[現在の会計週を)=。 –

+0

多対多の関係の場合はDAXの問題だと思います。出張から船へは、多対一の関係があります。船舶から船舶までの容量には、1対多数の関係がある。 DAXのようなものではなく、私が望むように計算を使う方法を探しています。 –

答えて

0

これは私のために働いていた最後の尺度です。その後、1に多くの場合、多くの関係に一 、それは反復しませんでした(しかし、以前、私はSUMやないSUMXを使用)。 私はそれは珍しい、私は多くのテーブルには多くの関係に言及していることがわかりました。 それ以外の場合は動作しません。