2017-11-07 14 views
1

私はしばらくの間DAXを書いていないので、これをまとめるのに少し苦労しています。誰かが提案を投げてくれることを願っています。2つの異なるテーブルからタイプ句を計算します

私は何を持っている:

数量表(1月よりも多くのヶ月):

+----------+-----------+----------+ 
| Location | Date | LaborQty | 
+----------+-----------+----------+ 
| NY  | 1/3/2017 | 41.024 | 
| NY  | 1/4/2017 | 33.836 | 
| NY  | 1/5/2017 | 20.431 | 
| NY  | 1/6/2017 | 35.544 | 
| NY  | 1/7/2017 | 0  | 
| NY  | 1/9/2017 | 33.337 | 
| NY  | 1/10/2017 | 41.799 | 
| NY  | 1/11/2017 | 70.469 | 
| NY  | 1/12/2017 | 35.514 | 
| NY  | 1/13/2017 | 31.573 | 
| NY  | 1/15/2017 | 0  | 
| NY  | 1/16/2017 | 22.041 | 
| NY  | 1/17/2017 | 30.518 | 
| NY  | 1/18/2017 | 47.576 | 
| NY  | 1/19/2017 | 29.53 | 
| NY  | 1/20/2017 | 18.155 | 
| NY  | 1/21/2017 | 0  | 
| NY  | 1/23/2017 | 31.284 | 
| NY  | 1/24/2017 | 27.695 | 
| NY  | 1/25/2017 | 38.907 | 
| NY  | 1/26/2017 | 16.289 | 
| NY  | 1/27/2017 | 30.976 | 
| NY  | 1/28/2017 | 0  | 
| NY  | 1/30/2017 | 21.434 | 
| NY  | 1/31/2017 | 16.49 | 
+----------+-----------+----------+...etc 

料金表:月の出力の

+----------+-----------+------------+-----------+---------+-----------+--------+ 
| Location | DateFrom | DateTo | MonthFrom | MonthTo | RateType | Amount | 
+----------+-----------+------------+-----------+---------+-----------+--------+ 
| NY  | 1/1/2017 | 6/30/2017 |   1 |  6 | LaborRate | 129.7 | 
| NY  | 7/1/2017 | 9/30/2017 |   7 |  9 | LaborRate | 129.8 | 
| NY  | 10/1/2017 | 12/31/2017 |  10 |  12 | LaborRate | 129.9 | 
| DC  | 1/1/2017 | 6/30/2017 |   1 |  6 | LaborRate | 130.1 | 
| DC  | 7/1/2017 | 9/30/2017 |   7 |  9 | LaborRate | 130.5 | 
| DC  | 10/1/2017 | 12/31/2017 |  10 |  12 | LaborRate | 130.7 | 
+----------+-----------+------------+-----------+---------+-----------+--------+ 

理想のタイプ(例:LaborQty x LaborRate)

私が記述しようとしています何
+-------+----------+-----------+------------+ 
| Month | LaborQty | LaborRate | Result | 
+-------+----------+-----------+------------+ 
|  1 | 674.22 | 129.74 | 87473.3 | 
|  2 | 350  | 129.74 | 45409  | 
|  3 | 375  | 129.74 | 48652.5 | 
|  4 | 400  | 129.74 | 51896  | 
|  5 | 380  | 129.74 | 49301.2 | 
|  6 | 500  | 129.74 | 64870  | 
|  7 | 550  | 129.76 | 71368  | 
|  8 | 600  | 129.76 | 77856  | 
|  9 | 675  | 129.76 | 87588  | 
| 10 | 700  | 129.98 | 90986  | 
| 11 | 780  | 129.98 | 101384.4 | 
+-------+----------+-----------+------------+ 

A DAX結果欄に示すようにその意志の出力量を測定します。私はRELATED計算、SUM、SUMX、フィルタの組み合わせを試してみましたが、私はそれを得ることができなかった

LaborRate = db.Rates 
      .Where(a => a.DateFrom <= SelectedDate & a.DateTo >= SelectedDate & a.RateType == "LaborRate") 
      .Select(a => a.Amount).Sum(); 

:私はどこでこのようになります正答率を選ぶためのLINQクエリを記述するかの作業。アドバイスをいただければ幸いです。最も簡単なアプローチは何ですか?

答えて

1

これを達成するには、以下の手順を実行しました。

  1. Qtyテーブルに計算された列としてMonth = MONTH(Qty[Date])を追加します。
  2. Qty表のTotalLaborQty小節をSUM(Qty[LaborQty])と作成します。
  3. RatesテーブルにLaborRate小節を定義します。
  4. Result小節を[TotalLaborQty] * [LaborRate]と定義します。
  5. 行内にQty[Location]Qty[Month]、値として3小節の行列を設定します。

LaborRate = 
    VAR SelectedMonth = SELECTEDVALUE(Qty[Month]) 
    VAR SelectedLocation = SELECTEDVALUE(Qty[Location]) 
    RETURN CALCULATE(SUM(Rates[Amount]), 
      FILTER(ALL(Rates), 
       Rates[MonthFrom] <= SelectedMonth && 
       Rates[MonthTo] >= SelectedMonth && 
       Rates[Location] = SelectedLocation)) 
+0

アレクシス、あなたは私の一日行わ!私はあなたの助けなしに私の目標を達成することができませんでした。あなたのDAX式は美しく書かれており、あなたのロジックは優れています。どうもありがとうございます! – iCosmin

関連する問題