Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-08-2017
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Pasar registros como columnas

Hola,

Tengo una consulta DE SQL Server que me devuelve N cantidad de registros (pueden ser mas o menos pero no son muchos). Lo que necesito es que esos registros se muestren en columnas.

Codigo Nombre
-------------------
1 aaa
2 bbb
3 ccc
8 ddd
9 eee
10 fff

lo que quiero hacer es que quede algo como esto

1 aaa 2 bbb 3 ccc 8 ddd 9 eee 10 fff
-------------------------------------------------

Esto que comento no lo puedo hacer con PIVOT ya que la cantidad de columnas que puedo llegar a tener puede varias. Si lo logran con PIVOT sera bienvenido pero yo no lo logre.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #2  
Antiguo 10-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Qué es "DE SQL Server"?
Responder Con Cita
  #3  
Antiguo 11-08-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Qué es "DE SQL Server"?
"de SQL Server"

O sea, hecha con SQL Server.

// Tiquismiquis
Responder Con Cita
  #4  
Antiguo 11-08-2017
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Así es que esta en el motor de base de datos SQL Server
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #5  
Antiguo 11-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¡Ah!, MS sql server.
Responder Con Cita
  #6  
Antiguo 11-08-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola,

un ejemplo simple para el uso de PIVOT mostrando las ventas de los clientes desglosadas por meses es:

Código SQL [-]
SELECT cliente, nombre, [1] as enero, [2] as febrero, [3] as marzo, [4] as abril, [5] as mayo, [6] as junio, [7] as julio, [8] as agosto, [9] as septiembre, [10] as octubre, [11] as noviembre, [12] as diciembre
FROM (
  select cliente, clientes.nombre, month(fecha) as mes, importe
  from ventas
  inner join clientes on clientes.codigo=cliente 
) AS datos PIVOT (
  sum(importe)
  FOR mes IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])
) AS PivotTable
order by nombre;

para el caso en particular de una lista de datos se puede aplicar algo así:

Código SQL [-]
SELECT [1] as c1, [2] as c2, [3] as c3, [4] as c4, [5] as c5, [6] as c6, [7] as c7, [8] as c8, [9] as c9, [10] as c10, [11] as c11, [12] as c12
FROM (
  select 
      row_number() over(order by codigo) as num, 
      campo
  from tabla
) AS datos PIVOT (
  min(campo) 
  FOR num IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])
) AS PivotTable

Importante, creo una especie de indice para las filas numerandolas, y para la tabla pivot, no vale poner solamente el nombre del campo, hay que aplicar alguna función, así que con poner la función min() es suficiente, y como pega en el FOR hay que poner tantos números como lineas pueda tener los datos.

Espero te pueda ser util
Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresión registros en tres columnas QuickReport vpepen Impresión 2 25-08-2010 18:45:11
Consulta de varios registros y como resultado varias columnas sierraja SQL 12 06-02-2008 13:04:22
como pasar varios registros desde el interactive sql de ibconsole.. uper Firebird e Interbase 2 30-01-2006 19:28:09
Pasar registros desde Paradox Alfredo Firebird e Interbase 9 26-12-2005 16:03:59
Pasar Registros de Query a una Tabla JamesBond_Mx Conexión con bases de datos 16 04-05-2004 17:08:38


La franja horaria es GMT +2. Ahora son las 18:08:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi