Forum Discussion
Falla la dependencia circular con diff de fecha
- 5 years ago
Allí @win_anthony
Intente reescribir su primera columna calculada de esta forma:
latest_welcome_transaction_flag = VAR LatestWelcomeDatePerStore = CALCULATE ( MAX ( 'table'[date] ), ALLEXCEPT ( 'table', 'table'[store_id] ), LEFT ( 'table'[status], 7 ) = "Welcome" ) RETURN IF ( 'table'[date] = LatestWelcomeDatePerStore, 1 )He simplificado un poco el código y me he asegurado de que la función CALCULATE, a la que se llama en el contexto de fila de la tabla, incluya un ALLEXCEPT que quita filtros en todas las columnas excepto store_id.
Originalmente, la llamada más externa a CALCULATE agregó filtros correspondientes a todas las columnas, incluido # de Days Since Last Transaction.WelComeOpp, que creó una referencia circular.
Cada vez que se llama a CALCULATE en una columna calculada, la "transición de contexto" hace que los valores de todas las columnas de la fila actual se conviertan en un filtro equivalente, a menos que esas columnas se excluyan del contexto de filtro resultante mediante ALLEXCEPT/REMOVEFILTERS.
Hay un buen artículo sobre este tema general aquí en SQLBI.
saludos
Owen
Allí @win_anthony
Intente reescribir su primera columna calculada de esta forma:
latest_welcome_transaction_flag =
VAR LatestWelcomeDatePerStore =
CALCULATE (
MAX ( 'table'[date] ),
ALLEXCEPT ( 'table', 'table'[store_id] ),
LEFT ( 'table'[status], 7 ) = "Welcome"
)
RETURN
IF ( 'table'[date] = LatestWelcomeDatePerStore, 1 )
He simplificado un poco el código y me he asegurado de que la función CALCULATE, a la que se llama en el contexto de fila de la tabla, incluya un ALLEXCEPT que quita filtros en todas las columnas excepto store_id.
Originalmente, la llamada más externa a CALCULATE agregó filtros correspondientes a todas las columnas, incluido # de Days Since Last Transaction.WelComeOpp, que creó una referencia circular.
Cada vez que se llama a CALCULATE en una columna calculada, la "transición de contexto" hace que los valores de todas las columnas de la fila actual se conviertan en un filtro equivalente, a menos que esas columnas se excluyan del contexto de filtro resultante mediante ALLEXCEPT/REMOVEFILTERS.
Hay un buen artículo sobre este tema general aquí en SQLBI.
saludos
Owen