2016-10-25 2 views
0

어떻게 든 DAX에서 여러 열을 필터링 할 수 있습니까?DAX에서 여러 열이있는 조건

두 날짜의 차이가 아래의 300 일보다 작지 않은 필터가 필요합니다.

The expression contains multiple columns, but only a single column can be used in a True/False expression that is used as a table filter expression.

는이 같은 해당 쿼리의 또 다른 구성을 시도하지만,이 경우에 나는 계산 된 구성원을 다시 사용할 수 없습니다 :

EVALUATE 
(
    CALCULATETABLE 
    (
     SUMMARIZE 
     (
      'Sales', 
      'Sales'[MaxDatum], 
      'Sales'[MinDatum] 
     ), 
     INT('Sales'[MaxDatum] - 'Sales'[MinDatum]) < 300    
    ) 
) 

는 그래서이 오류와 함께 실패했습니다.

EVALUATE 
(
    CALCULATETABLE 
    (
     SUMMARIZE 
     (
      'Sales', 
      'Sales'[MaxDatum], 
      'Sales'[MinDatum], 
      "DIFF", INT('Sales'[MinDatum] - 'Sales'[MaxDatum]) 
     ), 
     [DIFF] < 300   
    ) 
) 

어떻게 든 DAX 쿼리에서이를 수행 할 수 있습니까? 당신의 도움에 대한

감사

답변

1

이 시도 :

EVALUATE 
(
    FILTER (
     ADDCOLUMNS (Sales, "Diff", 1 * (Sales[MaxDatum] - Sales[MinDatum])), 
     [Diff] < 300 
    ) 
) 

당신이 SSAS 2016을 사용하는 경우 Excel 2016 또는 Power BI 당신은 시간 델타를 계산하는 더 신뢰할 수있는 방법입니다 DATEDIFF 기능을 사용할 수 있습니다 .

도움이 될지 알려주세요.

+0

감사합니다. 그것은 올바르게 작동하지만 그 쿼리에 "1 *"을 추가해야하는 이유는 무엇입니까? – Bushwacka

+0

@ Bushwacka, 1 *은 암시 적 데이터 변환입니다. 기본적으로 두 날짜의 차이를 정수로 변환합니다. 'INT()'함수도 사용할 수 있습니다. –