Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

datos de un campo en varias columnas

Estas en el tema de datos de un campo en varias columnas en el foro de SQL Server en Foros del Web. Saludos a todos los del foro Antes que nada permitanme felicitarlos por este espacio que resulta de mucha ayuda para todos. Mi pregunta es la ...
  #1 (permalink)  
Antiguo 19/04/2010, 19:36
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Sonrisa datos de un campo en varias columnas

Saludos a todos los del foro


Antes que nada permitanme felicitarlos por este espacio que resulta de mucha ayuda para todos.


Mi pregunta es la siguiente:
Como puedo hacer que un gridview me mande en varias columnas los registros del mismo campo.

Tengo una consulta la cual es la siguiente:

Cita:
DS_Regiones.SelectCommand = "set language spanish SELECT TipoAuditoria, status as 'Status', count(*) as 'Total de anomalias' FROM AnomRecom where [FechaDeteccion]>=@Ini and [FechaDeteccion]<=@Fin group by TipoAuditoria, status"
DS_Regiones.SelectParameters("Ini").DefaultValue = TxtInicial.Text.ToString
DS_Regiones.SelectParameters("Fin").DefaultValue = TxtFinal.Text.ToString

El campo STATUS maneja 2 tipos de información(ATENDIDAS, PENDIENTES)

Lo que me manda el gidview es lo siguiente:

TipoAuditoria Status Total de anomalias
COMISION MIXTA ATENDIDAS 1
COMISION MIXTA PENDIENTES 2



Y yo necesito que el gridview me lo mande asi:


TipoAuditoria TOTAL ATENDIDAS PENDIENTES
COMISION MIXTA 3 1 2


Como tengo que realizar la consulta para que el grid me lo muestre asi?


Les agradezco de antemano toda la ayuda que me puedan proporcionar

Muchas gracias...

Saludos
  #2 (permalink)  
Antiguo 19/04/2010, 19:40
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: datos de un campo en varias columnas

Si estás usando SQL Server 2005 o 2008, la mejor opción es que uses la instrucción PIVOT. Para SQL Server 2000, tendrás que usar agrupado condicional con CASE WHEN.

Saludos.
  #3 (permalink)  
Antiguo 19/04/2010, 22:53
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
De acuerdo Respuesta: datos de un campo en varias columnas

Muchas gracias por responder, estoy buscando información sobre ese comando




Te agradezco
  #4 (permalink)  
Antiguo 20/04/2010, 09:42
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Mensaje Respuesta: datos de un campo en varias columnas

he intentado con PIVOT pero no he podido.

Puse el siguiente codigo:

DS_Regiones.SelectCommand = "set language spanish SELECT TipoAuditoria,[1]Totales,[2]ATENDIDAS,[3]PENDIENTES FROM(select TipoAuditoria from AnomRecom where [FechaDeteccion]>=@Ini and [FechaDeteccion]<=@Fin) PIVOT ( count(*) for status IN ([1], [2], [3]))AS PivotTable "


DS_Regiones.SelectParameters("Ini").DefaultValue = TxtInicial.Text.ToString
DS_Regiones.SelectParameters("Fin").DefaultValue = TxtFinal.Text.ToString

Les pido su amable ayuda


Gracias.....
  #5 (permalink)  
Antiguo 20/04/2010, 10:02
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: datos de un campo en varias columnas

Beakdan

Ya intente tambien con esto y nada.


Me puedes apoyar??

DS_Regiones.SelectCommand = "set language spanish SELECT TipoAuditoria, [Concluida] AS 'Concluida', [Pendiente] AS 'Pendientes' FROM (SELECT TipoAuditoria, count(*) FROM AnomRecom where [FechaDeteccion]>=@Ini and [FechaDeteccion]<=@Fin group by TipoAuditoria, status) pvtPIVOT (count(status) FOR [TipoAuditoria] IN ([Concluida],[Pendiente])) AS Child ORDER BY TipoAuditoria"

DS_Regiones.SelectParameters("Ini").DefaultValue = TxtInicial.Text.ToString
DS_Regiones.SelectParameters("Fin").DefaultValue = TxtFinal.Text.ToString
  #6 (permalink)  
Antiguo 20/04/2010, 14:47
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: datos de un campo en varias columnas

Casi lo tenías. Prueba con esto:
Código:
SELECT    TipoAuditoria,
        [ATENDIDAS] + [PENDIENTES] AS TOTAL,
        [ATENDIDAS], [PENDIENTES]
FROM    (
            SELECT        TipoAuditoria, 
                        [status]
            FROM        AnomRecom
            WHERE        [FechaDeteccion] >= @Ini
                        AND [FechaDeteccion] <= @Fin
        ) AS ref
PIVOT    (COUNT([status]) FOR [status] IN([ATENDIDAS], [PENDIENTES])) AS pvt
Saludos.
  #7 (permalink)  
Antiguo 27/04/2010, 14:12
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
De acuerdo Respuesta: datos de un campo en varias columnas

¡Muchisimas gracias Beakdan!

Me funcionó a la primera.

En verdad te lo agradezco mucho tenia rato con esto

Eres excelente

Etiquetas: columnas, campos
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 22:19.