2016-09-24 2 views
0

최근에 DAX를 배우기 시작했습니다. DATEADD 기능을 제대로 이해할 수 없습니다. 블로우식이 오류를 표시합니다.DAX의 DATEADD 기능 관련 문제

DATEADD(FIRSTNONBLANK(DATATABLE("TodaysDate",DATETIME,{{"9/24/2016"}}),TRUE()),4,MONTH) 
A table expression containing more than one column was specified in the call to function 'DATEADD'. This is not supported. 

그러나 EDATE

EDATE(FIRSTNONBLANK(DATATABLE("TodaysDate",DATETIME,{{"9/24/2016"}}),TRUE()),4) 

및 FIRSTDATE과의 작업 FIRSTNONBLANK처럼 작동하지 않는 경우, 데이터 테이블 사용에 문제가 있나요? 내가 놓친 것을 알려주십시오.

FIRSTDATE(DATATABLE("Today1",DATETIME,{{"9/24/2016"}})) 
A table expression containing more than one column was specified in the call to function 'FIRSTDATE'. This is not supported. 

미리 감사드립니다.

답변

7

DATEADD 함수 첫번째 파라미터로하면 그래서 에러를 일으키는 테이블 전달되는 날짜를 포함하는 열 걸린다. 1 열 테이블을 전달하는 경우에도 열과 다를 수 있습니다.

참고 FIRSTNONBLANKFIRSTDATE 함수 테이블을 전달하는 있도록 테이블 각각 계산 된 최초 값 또는 날짜 단일 열 단일 행을 포함하는 반환.

당신은 칼럼에있는 경우 DATEADD이 계산 된 날짜를 반환하기 때문에 당신이 하나 개의 값이있는 경우에는이 그래서는 오류가 발생하지 아무것도 반환하지 않습니다 DATEADD 기능을 하나의 행과 하나의 열을 전달했다하더라도 돌아올 날짜가 더 많습니다. 당신이 계산 된 열이 4MonthsAfter라는 만들 DATEADD를 사용하는 경우

당신은이 테이블 MyDates

enter image description here

를 불렀다 : 당신을 위해 명확하지 않으면, DATEADD 작품을 이해하기 위해이 예제를 고려

4MonthsAfter = DATEADD(MyDates[Date],4,MONTH) 

반환 값 :

열이 24/12/2016 값을 포함하지 않기 때문에 당신이 날짜 24/08/2016 값의 열 4MonthsAfter을 볼 수 있듯이

enter image description here

는 더 24/05/2017 값이 없기 때문에 동일 24/01/2017에 대한 발생, 비어 있습니다. 그러나 24/09/2016 이후 4 개월은 24/01/2017이 열에 있기 때문에 계산됩니다.

안녕하세요 작품 방식은 EDATE 방식과 상당히 다릅니다. EDATE은 날짜/시간 또는 텍스트 형식으로 (날짜의 테이블 열이 아님) 인 을 취해 날짜 전후의 주어진 달 수를 계산합니다.

본질적으로 DATEADDDate/Calendar 테이블 (날짜 차원)에서 작동하도록 설계된 대부분의 Time Intelligence functions으로 첫 번째 매개 변수로 날짜 테이블 열을 필요로합니다.

프로그래밍 배경에서 오신 경우 DATEADD이 DAX에서 작동하는 방식으로 혼란 스러울 수 있습니다.일반적으로 DATEADD은 날짜, 간격 수 및 날짜를 ​​계산하기위한 특정 간격 (MONTH, DAY, YEAR, QUARTER) 만 필요합니다. DAX에서는 첫 번째 매개 변수로 명시적인 날짜 열이 필요합니다.

도움이 될지 알려주세요.

참조 :

DATEADD
FIRSTNONBLANK
FIRSTDATE
EDATE

+0

많은 감사, DATEADD에 너무 많은 선명도는 지금은 데이터웨어 하우징에 대한 지식을 가지고 DateDimension 관련이 있습니다. 이것이 DATEADD가 시간 정보 함수 아래에 있지만 날짜 함수 아래에 놓이지 않은 이유라고 생각합니다. – Gokul

+0

열 대신 표를 전달하기 때문에 세 번째 표현식이 작동하지 않는 이유가 무엇입니까? 그러나 그렇다면 FIRSTNONBLANK도 작동해서는 안됩니다. – Gokul

+1

@Gokul, 'FIRSTNONBLANK' 첫 번째 매개 변수는 열, ** 표 ** (전달할 항목) 또는 단일 열 표를 정의하는 부울 식의 참조 일 수 있습니다. 그래서 FIRSTNONBLANK는 작동해야하지만 DATEADD 함수가 앞서 설명한대로 평가 될 때 오류가되는 테이블을 반환합니다. –