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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Tablas temporales en Power BI con consulta directa

Estoy intentando ejecutar una consulta SQL en Power BI mediante la opción de consulta directa. Se carga bien en el Editor de consultas, pero cuando hago clic en "cerrar y aplicar", aparece un error que dice lo siguiente: Sintaxis incorrecta cerca de la palabra clave 'IF'. Sintaxis incorrecta cerca de ')'

Además, esto funciona bien en SSMS. ¿Alguna idea?


---- • Tabla de usuarios--
IF OBJECT_ID('tempdb.dbo.#SCUsers') no es NULL DROP TABLE #SCUsers
Comenzar
Seleccione
u.usr_key
,u.usr_arc_id [ARCInitials]
,u.usr_first_name+' '+u.usr_last_name [NombredeUsuario]
INTO #SCUsers
DESDE [SelectCARE-SQL].dbo.users u WITH(NOLOCK)
crear un índice agrupado cix_-SCUsers en #SCUsers(usr_key)
Final

IF OBJECT_ID('tempdb.dbo.#ArcCase') no es NULL DROP TABLE #ArcCase
Comenzar
Seleccione
ac.arc_ref [ReferenceNumb]
,ac.act_key [AccountID]
#ARCCASE
DESDE [SelectCARE-SQL].dbo.arc_cases ac
DONDE AC.arc_add_date > CAST(GETDATE()-7 COMO FECHA)
crear un índice agrupado cix_-ArcCase en #ArcCase(AccountID)
Final

--- Fechas de creación de la cuenta--
IF OBJECT_ID('tempdb.dbo.#SCAccts') no es null BEGIN DROP TABLE #SCAccts END
Comenzar
Seleccione
Ca. Referencenumb
,a.act_key [AccountID]
,a.act_add_date [AcctAddDate]
,a.act_parent_key [ParentAccountID]
,ls.sta_title [LeadStatus]
,l.lea_tier [LeadTier]
Agente. Nombre de usuario [Agente]
Agente. ARCInitials
,origu. Nombre de usuario [OrigAgent]
,origu. ARCInitials [OrigInitials]
,case cuando a.act_parent_key es null y, a continuación, 1 else 0 end [OpCount]
,caso cuando l.lea_status en (
/* Estados de prueba */ '291','364','371','310','385'
/* Dupe Statuses */ ,'94','187','186','184'
/* Estado no válido */ ,'16') ENTONCES 1 ELSE 0 END [ExcludeAccts]
,row_number() OVER (PARTITION BY a.act_key ORDER BY a.act_web_taken_datetime asc ) [RN]
#SCACCTS INTO
DESDE [SelectCARE-SQL].dbo. Cuentas
JOIN #ArcCase AC en AC. AccountID: a.act_key
IZQUIERDA JOIN [SelectCARE-SQL].dbo. Individuos i WITH(NOLOCK) ON i.indv_account_id - a.act_key
LEFT JOIN [SelectCARE-SQL].dbo.leads l WITH(NOLOCK) en l.lea_account_id a.act_key
LEFT JOIN [SelectCARE-SQL].dbo.statuses ls WITH(NOLOCK) ON l.lea_status á ls.sta_key
IZQUIERDA JOIN #SCUsers agente ON agent.usr_key - a.act_assigned_usr
IZQUIERDA UNIRSE #SCUsers origu.usr_key act_original_usr
DONDE 1-1
y a.act_add_date > CAST(GETDATE()-7 COMO FECHA)
Final


IF OBJECT_ID('tempdb.dbo.#QuoteDate') no es null BEGIN DROP TABLE #QuoteDate END
Comenzar
Seleccione
qa.quoteid
,min(qa.date_stamp) [MinDate]
#QUOTEDATE EN #QUOTEDATE
FROM squdb.dbo.QuoteAudit qa WITH(NOLOCK)
DONDE 1-1
Y (qa.status en ('QUO','PKG','NEW') O qa.status es null)
Y qa.date_stamp > getdate()-3
GRUPO POR qa.quoteid
HAVING min(qa.date_stamp) > ? CAST(GETDATE()-7 AS DATE)
crear el índice agrupado cix_-QuoteDate en #QuoteDate(quoteid)
Final

IF OBJECT_ID('tempdb.dbo.#BaseCaseData') no es null BEGIN DROP TABLE #BaseCaseData END
Comenzar
Seleccione
Po. Referencenumb
Sca. AccountID
Sca. ParentAccountID
Po. QuoteID
Po. PolicyID
Po. PlanID
Po. PolicyNumber
,po.CompanyCode
Po. Estado
,caso cuando po. ApplicSubType á 'AU' THEN 'AU' ELSE 'Non-AU' END [AU Flag]
Po. PremiumAnnually
,cast(po. CoverInitiatedDate como fecha) [COV_Date]
,convert(varchar(7),po. CoverInitiatedDate,126) [COV_Month]
,cast(po. CoverRequestDate como fecha) [CRI_Date]
,convert(varchar(7),po. CoverRequestDate,126) [CRI_Month]
Sca. Agente
Sca. ARCInitials
Sca. OrigAgent
Sca. OrigInitials
,coalesce(sca. AcctAddDate,qd. MinDate) [CreateDate]
,convert(varchar(7),coalesce(sca. AcctAddDate,qd. MinDate),126) [CreateMonth]
Sca. LeadTier
,isnull(sca. OpCount,0) [OpCount]
,1 [CaseCount]

EN #BaseCaseData
DESDE #SCAccts sca
IZQUIERDA JOIN squdb.dbo.Policy po WITH(NOLOCK) ON po. ReferenceNumb - sca. Referencenumb
JOIN #QuoteDate qd ON qd.quoteid á po. QuoteID
DONDE 1-1
Y sca. RN n.o 1
Final


IF OBJECT_ID('tempdb.dbo.#AgentLevels') no es una tabla de colocación nula #AgentLevels
Comenzar
Seleccione
*
INTO #AgentLevels
DESDE BizInt_SQL.dbo.AgentHistory_Apr2020 WITH(NOLOCK)
Final

IF OBJECT_ID('tempdb.dbo.#OpsData') no es null DROP TABLE #OpsData
Comenzar
Seleccione
Po. Referencenumb
Po. AccountID
Po. Estado
Po. OPCount
,1 [CaseCount]
,CAST(po. CreateDate como fecha) OPDate
Po. CreateMonth
,CAST(po. COV_Date como fecha) COV_Date
Po. COV_Month
,CAST(po. CRI_Date como fecha) CRI_Date
Po. CRI_Month
Po. [Bandera AU]
Po. PremiumAnnually
Po. ARCInitials [AgentInitials]
Po. Agente [Agente]
,al. ManagerName [Manager]
,al. AgentLevelLabel
,al. AgentLocation
,CONCAT(po. Agente,',,CAST(po. CreateDate como fecha)) Combinar
,caso cuando po. CRI_Date es NULL y, a continuación, NULL
cuando se lanza (po. CreateDate como fecha) - po. CRI_Date ENTONCES 'El mismo día'
CUANDO po. CRI_Date <> cast(po. CreateDate como fecha) ENTONCES 'Pipeline'
ELSE NULL END [Marca SameDay]

#OPSDATA INTO
DESDE #BaseCaseData po
IZQUIERDA JOIN #AgentLevels al en al. AgentARCInitials á po. ARCInitials y cast(po. CreateDate como fecha) entre al. StartDate y al. Enddate
DONDE 1-1
Final

Seleccione
*
DESDE #OpsData od
DONDE 1-1
Y el agente NO ES NULL
Y el gerente no es NULL
AND AgentLevelLabel<>'CNT'
AND AgentLevelLabel<>'LHA'
PEDIDO POR Od. OPDate desc

2 REPLIES 2
v-xuding-msft
Community Support
Community Support

Hola @michaelamyer ,

Power BI Desktop tiene problemas al analizar consultas en modo de consulta directa. Siempre resuelve la instrucción SQL de entrada front-end como una tabla derivada para que el procedimiento almacenado cause un error de sintaxis.

Por ahora, hay dos maneras de resolverlo. Uno es cambiar el modo de conexión de Direct Query a Import. Y el otro es crear la mayoría de los conjuntos de datos en SQL Server mediante vistas, etc. y, a continuación, conectarse directamente a ellos.

Por favor, consulte los hilos similares:

(Introdujo las dos formas en detalle.)

(El usuario lo resolvió utilizando una nueva función. Pero de esta manera, puede cambiar al modo de importación. )

Puede votar la idea para obtener el requisito de usar el procedimiento almacenado con el modo DQ implementado rápidamente.

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/33504791-direct-query

Espero que esto pueda ayudarte. 😊

Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Gracias por la información.
Espero que resuelvan esto pronto porque estoy tratando de usar las funciones "Enlazar parámetros" (que solo funcionan con DirectQuery) en consultas que usan tablas temporales.


https://learn.microsoft.com/en-us/power-bi/connect-data/desktop-dynamic-m-query-parameters

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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