2017-11-07 7 views
1

잠시 동안 DAX를 작성하지 않았으며이 문제를 해결하는 데 약간의 어려움을 겪고 있습니다. 누군가 제안을 던질 수 있기를 바랍니다.두 개의 다른 테이블에서 type 절을 계산하십시오

내가 무엇을 가지고 :

수량 표 (헤세이보다 더 많은 개월) :

+----------+-----------+----------+ 
| 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 | 
+-------+----------+-----------+------------+ 

:

DAX 측정하는 것이다 결과 열에 표시된 것과 같은 출력 양. 내가 올바른 속도를 따기위한 LINQ 쿼리를 작성하기 위해 WHERE 경우는 다음과 같이 보일 것이다 : 나는 계산 SUM, SUMX, 필터의 조합을 시도

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

, 관련을하지만 난 그것을 얻을 수 없었다 작업. 모든 조언을 많이 주시면 감사하겠습니다. 가장 간단한 방법은 무엇입니까?

답변

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] 인 매트릭스에 값을 설정하고 세 값을 값으로 설정하십시오.

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