Necesito sugerencia

Un usuario Pregunto ✅

suvecha

Hola ,

Tengo una consulta como la siguiente y estoy luchando para obtener la «ti».»FIRST_NAME» COMO «Técnico» en mi aplicación power bi,
Por favor, ayúdeme, ya que soy nuevo en Power BI. Sería bueno si alguien sugiriera algo en detalle.

SELECCIONE
«ti».»FIRST_NAME» AS «Técnico»,
«wo».»WORKORDERID» AS «ID de solicitud»,
«aau».»FIRST_NAME» AS «Solicitante»,
«wo».»HORA CREADA» COMO «Tiempo creado»
DESDE «Orden de trabajo» «wo»
UNIRSE A LA IZQUIERDA «SDUser» «sdu» ON «wo».»REQUESTERID»=»sdu».»USERID»
UNIRSE A LA IZQUIERDA «AaaUser» «aau» ON «sdu».»USERID»=»aau».»USER_ID»
LEFT JOIN «WorkOrderStates» «wos» ON «wo».»WORKORDERID»=»wos».»WORKORDERID»
UNIRSE A LA IZQUIERDA «SDUser» «td» EN «wos».»ID DE PROPIETARIO»=»td».»ID DE USUARIO»
UNIRSE A LA IZQUIERDA «AaaUser» «ti» ON «td».»USERID»=»ti».»USER_ID»
DONDE
(
CONVERTIR (VARCHAR, DATEADD (SEGUNDO, «wo». «HORA DE CREACIÓN» / 1000, ‘19700101’), 111)> = ‘2020/08/01’ y
CONVERTIR (VARCHAR, DATEADD (SEGUNDO, «wo». «HORA DE CREACIÓN»/1000, ‘19700101’), 111) <= '2020/08/18'

)

Se adjunta el modelo de datos de mi aplicación power bi.

suvechha_0-1597970852216.png

allisonkennedy

En respuesta a suvecha

@suvechha
Debe definir la ruta completa de las relaciones y parece que a la función RELATED() no le gusta USERRELATIONSHIP, así que lo he arreglado. Compruebe si esto devuelve los resultados esperados para el técnico:

Técnico = CALCULAR (VALOR SELECCIONADO (AaaUsuario[FIRST_NAME]), RELACIÓN DE USUARIO (Orden de trabajo[WORKORDERID],Estados de órdenes de trabajo[WORKORDERID]), RELACIÓN DE USUARIO (estados de órdenes de trabajo[OWNERID], SDUusuario[USERID]), RELACIÓN DE USUARIO (Usuario SDU[USERID], AaaUsuario[USER_ID]))

ACTUALIZACIÓN: @suvechha si recibe un error sobre la ruta única, deberá hacer que la relación entre WorkOrder y WorkOrderStates sea una relación de muchos a uno con una sola dirección de filtro cruzado.

Hola @suvechha,

Las relaciones entre estas tablas son iguales a la parte de combinación en sus códigos SQL, por lo que no es necesario agregar estas partes de combinación en su fórmula DAX. Si bien puede cambiar la dirección del filtro cruzado de las relaciones entre las tablas anteriores de Single a Both , lo que hará que estas tablas se traten como una sola tabla.

173.png

Además, «ti».»FIRST_NAME» y «aau».»FIRST_NAME» se refieren a la misma tabla ‘AaaUser’, por lo que puede crear dos columnas calculadas en la tabla ‘WorkOrder’ como DAX a continuación.

175.png

Requester = RELATED(AaaUser[FirstName])

Technician = RELATED(AaaUser[FirstName])

Para la parte «wo».»WORKORDERID» AS «ID de solicitud» y «wo».»CREATETIME» AS «Created Time», puede ir a la tabla ‘WorkOrder’ en el panel de campo directamente, cambiar el nombre de la [WORKORDERID] con [Request ID], renombra el [CREATEDTIM] con [Created Time] a mano.

Atentamente,

amy

Equipo de apoyo comunitario _ Amy

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

suvecha

En respuesta a v-xicai

Hola Amy ,

Intenté tu sugerencia pero no funcionó.

amichandak

@suvechha, en power BI puede cambiar el nombre de la columna a nivel de tabla o a nivel visual. Cambiar el nombre es un desafío o unirse no funciona como se esperaba

allisonkennedy

@suvechha

Está utilizando la tabla AaaUser dos veces en su instrucción SQL y relacionándola con la MISMA orden de trabajo de la tabla de hechos. Esto no es posible en Power BI con relaciones activas, por lo que tiene dos opciones.

Opción 1: duplique la tabla AaaUser en su modelo de datos de Power BI; nombre a uno de ellos Solicitante (el actual con las relaciones actuales que ha configurado). Nombre el segundo Technician y cree una relación entre TechnicianAaaUser[UserID] y estados de órdenes de trabajo[OwnerID]

Opción 2: crear una relación inactiva entre AaaUser[UserID] y estados de órdenes de trabajo[OwnerID] y usa DAX para obtener los valores que quieras cuando quieras.

Supongo que desea poder filtrar tanto por Tech como por Solicitante, por lo que si desea tener el nombre, el apellido, etc. disponibles, elija la Opción 1. Si solo necesita FirstName, elija la Opción 2 y crear columnas calculadas en la tabla de órdenes de trabajo para
Solicitante = RELACIONADO(AaaUser[FirstName])
Técnico = CALCULAR (RELACIONADO (AaaUser[FirstName]), RELACIÓN DE USUARIO (estados de orden de trabajo[OwnerID], AaaUsuario[UserID]))

suvecha

En respuesta a allisonkennedy

Cómo cargar mi aplicación de muestra aquí.

suvecha

En respuesta a allisonkennedy

Hola Allison,

Tomé la opción 2.

pero me sale un mensaje de error

La columna ‘Usuario Aaa[FIRST_NAME]’ no existe o no tiene relación con ninguna tabla disponible en el contexto actual.

Por favor, tenga la amabilidad de ayudar.

allisonkennedy

En respuesta a suvecha

Puede cargar el archivo de muestra en OneDrive y compartir el vínculo.

¿Recibe el mensaje de error en Solicitante o Técnico o en ambos?

¿Todas las flechas en las relaciones que creó hacen una conexión en cascada desde AaaUser a WorkOrder con todas las flechas apuntando hacia la tabla WorkOrder?

suvecha

En respuesta a allisonkennedy

Hola Alison,

Su sugerencia Opción 1 funciona.

Pero quiero que Option2 funcione.

Seguí todos los pasos que mencionaste,

Por favor, ¿puede echar un vistazo al archivo de muestra y decirme qué está mal?

https://1drv.ms/u/s!AhqwbtIVEKQ2bBzZ7PyqQ6ot-vk?e=coQGzS

Sus pasos me ayudaron a lograr casi lo que quiero pero no funciona al 100%.

Gracias

Suvecha

allisonkennedy

En respuesta a suvecha

@suvechha
Debe definir la ruta completa de las relaciones y parece que a la función RELATED() no le gusta USERRELATIONSHIP, así que lo he arreglado. Compruebe si esto devuelve los resultados esperados para el técnico:

Técnico = CALCULAR (VALOR SELECCIONADO (AaaUsuario[FIRST_NAME]), RELACIÓN DE USUARIO (Orden de trabajo[WORKORDERID],Estados de órdenes de trabajo[WORKORDERID]), RELACIÓN DE USUARIO (estados de órdenes de trabajo[OWNERID], SDUusuario[USERID]), RELACIÓN DE USUARIO (Usuario SDU[USERID], AaaUsuario[USER_ID]))

ACTUALIZACIÓN: @suvechha si recibe un error sobre la ruta única, deberá hacer que la relación entre WorkOrder y WorkOrderStates sea una relación de muchos a uno con una sola dirección de filtro cruzado.

suvecha

En respuesta a allisonkennedy

Gracias Allison por tu ayuda.

suvecha

En respuesta a allisonkennedy

Hola Allison,

Solo recibo un error en el Técnico.

Encuentre el enlace de la aplicación de muestra.

https://1drv.ms/u/s!AhqwbtIVEKQ2an7GOEIb_ql2hys

Si no

https://www.pbiusergroup.com/communities/community-home/digestviewer/viewthread?MessageKey=e2d204b7-…

Gracias,

Suvecha

greg_deckler

@suvechha – No muy bien con el SQL, eso es cambiar el nombre de la columna dentro de la consulta, ¿correcto? No conozco otra forma de hacerlo que no sea usar SELECTCOLUMNS.

Si no es así, realmente no hay suficiente información para continuar, primero verifique si su problema es un problema común que se enumera aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read -Este/ba-p/1116882

Además, consulte esta publicación sobre cómo obtener una respuesta rápida a su pregunta: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Muestre datos como texto, use la herramienta de tabla en la barra de edición
2. Salida esperada de datos de muestra
3. Explicación en palabras de cómo pasar del 1 al 2.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *