Forum Discussion
Consulta SQL a DAX
- 5 years ago
@Kartiklal03
Los modifiqué:Bookings = var __startdate = min( 'Calendar'[Date Key] ) var __enddate = max( 'Calendar'[Date Key] ) return CALCULATE ( DISTINCTCOUNT ( Booking[Booking Number] ), FILTER( ALL(Booking), Booking[Booking Date] >= __startdate && Booking[Booking Date] <= __enddate && OR( NOT( Booking[Cancellation Date] >= __startdate && Booking[Cancellation Date] <= __enddate ), ISBLANK( Booking[Cancellation Date] ) ) && OR( NOT( Booking[Expiry Date] >= __startdate && Booking[Expiry Date] <= __enddate ), ISBLANK( Booking[Expiry Date] ) ) ), Booking[Channel Name] = "Internet"&& Booking[Original Booking Status] IN {"Firm", "Normal", "Requested", "OP"} )Revenue = var __startdate = min( 'Calendar'[Date Key] ) var __enddate = max( 'Calendar'[Date Key] ) return CALCULATE ( sum ( Booking[Booking Price EUR] ), FILTER( ALL(Booking), Booking[Booking Date] >= __startdate && Booking[Booking Date] <= __enddate && OR( NOT( Booking[Cancellation Date] >= __startdate && Booking[Cancellation Date] <= __enddate ), ISBLANK( Booking[Cancellation Date] ) ) && OR( NOT( Booking[Expiry Date] >= __startdate && Booking[Expiry Date] <= __enddate ), ISBLANK( Booking[Expiry Date] ) ) ), Booking[Channel Name] = "Internet"&& Booking[Original Booking Status] IN {"Firm", "Normal", "Requested", "OP"} )
No @Fowmy,
Gracias por eso.
¿Cómo incluo "si la fecha de cancelación o caducidad está en blanco"? Estoy teniendo algunos problemas con esto.
Modifiqué el DAX para incluir si la fecha de cancelación o la fecha de caducidad están en blanco, pero no me está dando la cifra correcta.
Bookings :=
VAR __startdate =
MIN ( 'Calendar'[Date Key] )
VAR __enddate =
MAX ( 'Calendar'[Date Key] )
RETURN
CALCULATE (
DISTINCTCOUNT ( Booking[Booking Number] ),
FILTER (
ALL ( Booking ),
Booking[Booking Date] >= __startdate
&& Booking[Booking Date] <= __enddate
&& NOT ( Booking[Cancellation Date] >= __startdate
&& Booking[Cancellation Date] <= __enddate )
|| ISBLANK ( Booking[Cancellation Date] )
&& NOT ( Booking[Expiry Date] >= __startdate
&& Booking[Expiry Date] <= __enddate )
|| ISBLANK ( Booking[Expiry Date] )
),
Booking[Channel Name] = "Internet",
Booking[Original Booking Status] = "FIRM"
|| Booking[Original Booking Status] = "Normal"
|| Booking[Original Booking Status] = "OP"
|| Booking[Original Booking Status] = "Requested"
)
@Kartiklal03
Los modifiqué:
Bookings =
var __startdate = min( 'Calendar'[Date Key] )
var __enddate = max( 'Calendar'[Date Key] )
return
CALCULATE (
DISTINCTCOUNT ( Booking[Booking Number] ),
FILTER(
ALL(Booking),
Booking[Booking Date] >= __startdate &&
Booking[Booking Date] <= __enddate &&
OR(
NOT( Booking[Cancellation Date] >= __startdate &&
Booking[Cancellation Date] <= __enddate ),
ISBLANK( Booking[Cancellation Date] )
)
&&
OR(
NOT( Booking[Expiry Date] >= __startdate &&
Booking[Expiry Date] <= __enddate ),
ISBLANK( Booking[Expiry Date] )
)
),
Booking[Channel Name] = "Internet"&&
Booking[Original Booking Status] IN {"Firm", "Normal", "Requested", "OP"}
)
Revenue =
var __startdate = min( 'Calendar'[Date Key] )
var __enddate = max( 'Calendar'[Date Key] )
return
CALCULATE (
sum ( Booking[Booking Price EUR] ),
FILTER(
ALL(Booking),
Booking[Booking Date] >= __startdate &&
Booking[Booking Date] <= __enddate &&
OR(
NOT( Booking[Cancellation Date] >= __startdate &&
Booking[Cancellation Date] <= __enddate ),
ISBLANK( Booking[Cancellation Date] )
)
&&
OR(
NOT( Booking[Expiry Date] >= __startdate &&
Booking[Expiry Date] <= __enddate ),
ISBLANK( Booking[Expiry Date] )
)
),
Booking[Channel Name] = "Internet"&&
Booking[Original Booking Status] IN {"Firm", "Normal", "Requested", "OP"}
)- Syndicate_Admin5 years agoAdministrator
No @Fowmy,
Gracias de nuevo. Su DAX modificado funciona, pero de nuevo no estoy obteniendo las cifras correctas para reservas o ingresos.
La consulta SQL original devuelve alrededor de 4900 reservas para el mes de abril, mientras que dax devuelve alrededor de 3100 reservas.
- Syndicate_Admin5 years agoAdministrator
@Kartiklal03
Mejor revise las dos tablas de un mes en particular y averigüe qué registros no se han reconciliado - Syndicate_Admin5 years agoAdministrator
No @Fowmy,
¡Ignora mi mensaje anterior! Su DAX modificado funciona perfectamente y ahora me está dando exactamente lo que estaba buscando.
Gracias por su ayuda. Voy a marcar ese post como la solución ahora.
- Syndicate_Admin5 years agoAdministrator
Le damos la bienvenida 🙏
Acabo de empezar a aprender sql y esto fue bueno para mí también.
gracias