microsoft / sql-server-samples

Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge
Other
9.97k stars 8.85k forks source link

SQL subquery problem #1168

Closed Reztory closed 9 months ago

Reztory commented 1 year ago

Hola, buen día.

Me gustaría saber si es posible eliminar una subquery que tengo en la siguiente consulta:

Select a2.x1, a2.x2 .., (select sum(a4.GE) from #tbA4 as a4 where a4.date between a2.Fdate and a2.Edate and a2.x1 = a4.x1) AS GE from #tbA2 AS a2 left join #tbA4 as A4 on a2.x1 = a4.x1

La subquery suma el valor de GE de la tabla A4 con la condición de que la columna A4date que es una columna en formato DATE, se encuentre delimitada entre 2 fechas, una inicial y una final.

Las formas en las que he tratado de darle solución y quitar dicha subquery es por creando una tabla temporal que contenga la suma agregada de la tabla #tbA4, pero al relacionarla por medio de cualquier join, no consigo que el resultado final de la subquery sea la misma.

Informacion adicional de la tabla #tbA4: Es una tabla que contiene las siguientes columnas: DATE, x1 (ID), GE(int). La relacion se hace por medio de x1, que es el id que existe en ambas tablas.

De antemano gracias por leer y ayudar.

YeshuSQL commented 9 months ago

select a2.x1, a2.x2, sum(a4.GE) as GE from #tbA2 as a2 left join #tbA4 AS a4 on a2.x1 = a4.x1 and a4.date between a2.Fdate and a2.Edate group by a2.x1, a2.x2