Se puede ?

01/08/2005 - 17:11 por Cristian | Informe spam
Hola.
Tengo un Select que retorna una tabla temporal asi:

NOMBRE MES CANTIDAD
JOSE ENERO 10
JOSE FEBRERO 20
PEDRO MARZO 80

Quiero hacer un select de dicha tabla y que deje los datos asi :


NOMBRE ENERO FEBRERO MARZO
JOSE 10 10 0
PEDRO 0 0 80


Mi problema es que los meses no son constantes, por lo tanto, necesito
crear esa consulta al final.

Alguien me dijo por ahi que existia algun tipo de funcion para esto.

Atte,
Cristian.

Preguntas similare

Leer las respuestas

#1 Maxi
01/08/2005 - 17:22 | Informe spam
Hola cristian, te recomiendo que dejes los meses constantes y los vayas
llenando. Podrias ver en la pag www.portalsql.com donde encontraras una
serie de ejemplos sobre pivot tables en sql server. Ahora, otra
recomendacion (por lo menos hasta que salga 2005) trata de estas cosas
hacerlas en el reporte, van a ser mas eficiente :-)


Salu2
Maxi


"Cristian" escribió en el mensaje
news:
Hola.
Tengo un Select que retorna una tabla temporal asi:

NOMBRE MES CANTIDAD
JOSE ENERO 10
JOSE FEBRERO 20
PEDRO MARZO 80

Quiero hacer un select de dicha tabla y que deje los datos asi :


NOMBRE ENERO FEBRERO MARZO
JOSE 10 10 0
PEDRO 0 0 80


Mi problema es que los meses no son constantes, por lo tanto, necesito
crear esa consulta al final.

Alguien me dijo por ahi que existia algun tipo de funcion para esto.

Atte,
Cristian.
Respuesta Responder a este mensaje
#2 Cristian
01/08/2005 - 17:38 | Informe spam
Ok Maxi muchas gracias de nuevo.

Se puedo hacer algo asi ?

DECLARE @NOMBRE int

SET @NOMBRE=1
ALTER TABLE #ppto_datos ADD 'N' + @NOMBRE VARCHAR(20) NULL

La idea es que lo tengo en un while y creare unoas 4 columnas, que
deberian ser : N1, N2, N3 y N4

Maxi escribió:

Hola cristian, te recomiendo que dejes los meses constantes y los vayas
llenando. Podrias ver en la pag www.portalsql.com donde encontraras una
serie de ejemplos sobre pivot tables en sql server. Ahora, otra
recomendacion (por lo menos hasta que salga 2005) trata de estas cosas
hacerlas en el reporte, van a ser mas eficiente :-)

Respuesta Responder a este mensaje
#3 Maxi
01/08/2005 - 17:56 | Informe spam
Hola, debes usar sql dinamico (sp_executesql)


Salu2
Maxi


"Cristian" escribió en el mensaje
news:
Ok Maxi muchas gracias de nuevo.

Se puedo hacer algo asi ?

DECLARE @NOMBRE int

SET @NOMBRE=1
ALTER TABLE #ppto_datos ADD 'N' + @NOMBRE VARCHAR(20) NULL

La idea es que lo tengo en un while y creare unoas 4 columnas, que
deberian ser : N1, N2, N3 y N4

Maxi escribió:

Hola cristian, te recomiendo que dejes los meses constantes y los vayas
llenando. Podrias ver en la pag www.portalsql.com donde encontraras una
serie de ejemplos sobre pivot tables en sql server. Ahora, otra
recomendacion (por lo menos hasta que salga 2005) trata de estas cosas
hacerlas en el reporte, van a ser mas eficiente :-)

Respuesta Responder a este mensaje
#4 Cristian
01/08/2005 - 18:03 | Informe spam
Te pasaste.

MUCHAS GRACIAS !!!!!!!!!!!!!!!!

Maxi escribió:

Hola, debes usar sql dinamico (sp_executesql)

Respuesta Responder a este mensaje
#5 Alejandro Mesa
01/08/2005 - 21:11 | Informe spam
Trata:

select
nombre,
sum(case when mes = 'enero' then cantidad else 0 end) as enero,
sum(case when mes = 'febrero' then cantidad else 0 end) as febrero,
sum(case when mes = 'marzo' then cantidad else 0 end) as marzo
from
t1
group by
nombre
go

HOW TO: Rotate a Table in SQL Server
http://support.microsoft.com/defaul...roduct=sql

Dynamic Crosstab Queries
http://www.windowsitpro.com/Article....html?Ad=1


AMB

"Cristian" wrote:

Hola.
Tengo un Select que retorna una tabla temporal asi:

NOMBRE MES CANTIDAD
JOSE ENERO 10
JOSE FEBRERO 20
PEDRO MARZO 80

Quiero hacer un select de dicha tabla y que deje los datos asi :


NOMBRE ENERO FEBRERO MARZO
JOSE 10 10 0
PEDRO 0 0 80


Mi problema es que los meses no son constantes, por lo tanto, necesito
crear esa consulta al final.

Alguien me dijo por ahi que existia algun tipo de funcion para esto.

Atte,
Cristian.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida