Forum Discussion
Syndicate_Admin
5 years agoAdministrator
Consulta SQL a DAX
Hola a todos Necesito ayuda para convertir una consulta SQL a DAX con un ligero cambio. La siguiente consulta me dará lo que necesito para el mes de abril, pero lo que necesito es que mi DA...
- 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"} )
Syndicate_Admin
5 years agoAdministrator
@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_Admin
5 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