Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 11-08-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 13
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
 



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 17:45:11
Consulta de varios registros y como resultado varias columnas sierraja SQL 12 06-02-2008 12:04:22
como pasar varios registros desde el interactive sql de ibconsole.. uper Firebird e Interbase 2 30-01-2006 18:28:09
Pasar registros desde Paradox Alfredo Firebird e Interbase 9 26-12-2005 15:03:59
Pasar Registros de Query a una Tabla JamesBond_Mx Conexión con bases de datos 16 04-05-2004 16:08:38


La franja horaria es GMT +2. Ahora son las 19:05:00.


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