Foros del Web » Programando para Internet » PHP »

Consulta SQL con PIVOT DINAMICO desde PHP

Estas en el tema de Consulta SQL con PIVOT DINAMICO desde PHP en el foro de PHP en Foros del Web. Estimados, Estuve "trabajando" (copie, pegue un trabaje un poco...) en esta consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original DECLARE @A INT , @YearsPVT NVARCHAR ( ...
  #1 (permalink)  
Antiguo 15/09/2014, 21:01
Avatar de hhelmanj  
Fecha de Ingreso: julio-2014
Ubicación: Santiago de Chile
Mensajes: 10
Antigüedad: 9 años, 9 meses
Puntos: 0
Consulta SQL con PIVOT DINAMICO desde PHP

Estimados,

Estuve "trabajando" (copie, pegue un trabaje un poco...) en esta consulta:
Código SQL:
Ver original
  1. DECLARE @A INT, @YearsPVT NVARCHAR(MAX)
  2.  
  3. DECLARE @Desde NVARCHAR(50), @Hasta NVARCHAR(50)
  4.  
  5. SET @Desde=N'2014-09-01'
  6. SET @Hasta=N'2014-09-03'
  7.  
  8. DECLARE @TableYears AS TABLE([A] INT NOT NULL)
  9. INSERT INTO @TableYears SELECT DISTINCT DAY(fecdoc) AS [A] FROM tve WHERE fecdoc BETWEEN @Desde AND @Hasta
  10. SET @A=(SELECT MIN([A]) FROM @TableYears)
  11. SET @YearsPVT=N''
  12. WHILE @A IS NOT NULL
  13. BEGIN
  14.   SET @YearsPVT=@YearsPVT+N',['+CONVERT(NVARCHAR(10),@A)+N']'
  15.   SET @A=(SELECT MIN([A]) FROM @TableYears WHERE [A]>@A)
  16. END
  17. SET @YearsPVT=SUBSTRING(@YearsPVT,2,LEN(@YearsPVT))
  18. PRINT @YearsPVT
  19. DECLARE @SQL NVARCHAR(MAX)
  20.  
  21. DECLARE @WHERE NVARCHAR(MAX)
  22.  
  23. SET @WHERE=N'
  24.  
  25. SET @SQL= N'SELECT *
  26.             FROM (
  27.                 SELECT tve.idbodega,bodegas.bodega, DAY(fecdoc) [A] ,total FROM tve
  28.                 INNER JOIN bodegas ON tve.idbodega=bodegas.idbodega
  29.                 [U][B]WHERE fecdoc BETWEEN "2014-09-01" AND "2014-09-03" AND tve.idbodega="7"[/B][/U]
  30.                 ) pvt
  31.             PIVOT (SUM(total) FOR [A] IN ('+@YearsPVT+')) AS Child
  32.             ORDER BY idbodega'
  33. EXECUTE sp_executesql @SQL

El codigo en negrita, en realidad me gustaria completarlo con variables PHP.

Esta consulta echa directo en la base de datos FUNCIONA.

cuando la guardo en una variable de PHP y la llamo....:
Código PHP:
Ver original
  1. $TxtConsulta="DECLARE @A INT, @YearsPVT NVARCHAR(MAX)
  2. DECLARE @TableYears AS TABLE([A] INT NOT NULL)
  3. INSERT INTO @TableYears SELECT DISTINCT DAY(fecdoc) as [A] FROM tve where fecdoc between '$fecha_desde_epos' and '$fecha_hasta_epos'
  4. SET @A=(SELECT MIN([A]) FROM @TableYears)
  5. SET @YearsPVT=N''
  6. WHILE @A IS NOT NULL
  7. BEGIN
  8.  SET @YearsPVT=@YearsPVT+N',['+CONVERT(NVARCHAR(10),@A)+N']'
  9.  SET @A=(SELECT MIN([A]) FROM @TableYears WHERE [A]>@A)
  10. END
  11. SET @YearsPVT=SUBSTRING(@YearsPVT,2,LEN(@YearsPVT))
  12. PRINT @YearsPVT
  13. DECLARE @SQL NVARCHAR(MAX)
  14. SET @SQL=N'SELECT *
  15.            FROM (
  16.                SELECT tve.idbodega,bodegas.bodega, DAY(fecdoc) [A] ,total FROM tve
  17.                inner join bodegas on tve.idbodega=bodegas.idbodega
  18.                where fecdoc between \"$fecha_desde_epos\" and \"$fecha_hasta_epos\"
  19.                ) pvt
  20.            PIVOT (SUM(total) FOR [A] IN ('+@YearsPVT+')) AS Child
  21.            ORDER by idbodega'
  22. EXECUTE sp_executesql @SQL";

Última edición por gnzsoloyo; 16/09/2014 a las 08:06
  #2 (permalink)  
Antiguo 16/09/2014, 07:42
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta SQL con PIVOT DINAMICO desde PHP

Este tema es del foro de php no del foro de sql, que estes usando una base de datos no quiere decir que todas las respuestas las vas a encontrar aqui
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 16/09/2014, 08:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta SQL con PIVOT DINAMICO desde PHP

Pregunta OF TOPIC en SQL Server.

Movido a foro de PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: dinamico, php+sqlserver, pivot, sql-server
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:39.