Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
masplin
Impactful Individual
Impactful Individual

Problema realmente extraño con la función SQL que no devuelve el resultado en el escritorio, pero lo hace en el servicio!!!!

Tenía un modelo que funcionaba perfectamente bien y luego nuestros servidores se trasladaron a Azure. esto causó algunos problemas con algunas funciones SQL personalizadas que calcularon la duración. Estos fueron corregidos y si ejecuto la consulta a continuación en Microsoft Server Management funciona bien generando la columna DurationSecInWorkinghours

select
   'TEST' AS [Client],
   noteid,
   [Type],
 
   CaseNumber,
   CreatedDateTime,
   FinalisedDateTime,
   FinalisedByAdviserID,
   t.TopicTitle,
   [ARGOS_DW_REPORTING].[dbo].[udf_GetWorkingTime](CreatedDateTime, FinalisedDateTime) AS DurationSecInWorkingHours
   from [ARGOS_DW_REPORTING].[dbo].[Fact_Cases_Notes] fcn
   JOIN [ARGOS_DW_REPORTING].dbo.Dim_Topic t    on t.TopicKey = fcn.TopicKey
   where FinalisedDateTime >= '20200810' 
   and FinalisedByAdviserID <> - 1
   and PostedToCaseViewerFlag <> 'T'
   AND COALESCE(AskTheExpertID, 0) = 0

Sin embargo, cuando lo pongo en aquery en Power BI, produce ceros para algunos clientes, pero no para todos (tenemos una base de datos independiente para cada cliente).

let
    Source = Sql.Database("Test.com", "master", [Query="
  select
   'TEST' AS [Client],
   noteid,
   [Type],
 
   CaseNumber,
   CreatedDateTime,
   FinalisedDateTime,
   FinalisedByAdviserID,
   t.TopicTitle,
   [ARGOS_DW_REPORTING].[dbo].[udf_GetWorkingTime](CreatedDateTime, FinalisedDateTime) AS DurationSecInWorkingHours
   from [ARGOS_DW_REPORTING].[dbo].[Fact_Cases_Notes] fcn
   JOIN [ARGOS_DW_REPORTING].dbo.Dim_Topic t    on t.TopicKey = fcn.TopicKey
   where FinalisedDateTime >= '20200810' 
   and FinalisedByAdviserID <> - 1
   and PostedToCaseViewerFlag <> 'T'
   AND COALESCE(AskTheExpertID, 0) = 0


    "])
in
    Source

En la base de datos de prueba tengo 5 clientes, así que el código anterior acaba de unirse a UNION ALL. 4 de ellos tienen resultados en el escritorio, pero uno no. Sin embargo, si publsih todo 5 están bien!!! Tenemos el segundo servidor TEST2 y en este hay 12 clientes y ninguno de ellos tiene nada más que ceros y ninguno de ellos funciona cuando se publica (la consulta funciona en MSMS).

El código M es idéntico al código de los servidores previos a Azure que solo ha cambiado el nombre del servidor. Así que preguntas

  1. Cualquier idea que haría que la consulta devolviera los resultados en MSMS pero no en el escritorio. ¿Estoy usando el mismo inicio de sesión de Windows?
  2. ¿Qué haría que el modelo de escritorio tuviera un resultado cero, pero para que el resultado sea correcto cuando se actualice en el servicio (para ese cliente que hace esto)?

Un problema podría ser que cada cliente tiene una definición differnet de horas de trabajo por lo que cada función es un poco diferente. Aún así estoy desconcertado por qué MsMS puede ejecutarlo y el escritorio cant y también por qué el servicio puede ejecutarlo y el escritorio cant. Nos quedes sin ideas y compeltely paralizado nuestro Power BI

Gracias por cualquier consejo

Mike

2 REPLIES 2
MFelix
Super User
Super User

Hola @masplin ,

La persona perfecta para responder a estas preguntas es @ImkeF el mejor super usuario en el idioma M aquí.

@ImkeF puedes arreglar esto?


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



ImkeF
Community Champion
Community Champion

Hola @masplin ,

nada super obvio viene a mi mente aquí. Sólo que el código SQL se ve un poco áspero en general.

Comenzaría a volver a generar la consulta SQL con pasos nativos de Power Query, comprobaría el código M generado automáticamente (ver consulta nativa) y reemplazaría el código SQL con él posteriormente.

Haga esto paso a paso hasta que PBID golpee el error. Esto debería identificar los elementos de consulta morosas.

Imke Feldmann (The BIccountant)

If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!

How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors