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

consulta pivot transponer columnas por filas

Estas en el tema de consulta pivot transponer columnas por filas en el foro de SQL Server en Foros del Web. Tengo la siguiente consulta: INVOICE No. NC DOC NC VALUE ND DOC ND VALUE RC DOC RC VALUE INVOICE 40842 137 130130 140 60000 3 ...
  #1 (permalink)  
Antiguo 16/01/2013, 11:24
 
Fecha de Ingreso: abril-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación consulta pivot transponer columnas por filas

Tengo la siguiente consulta:
INVOICE No. NC DOC NC VALUE ND DOC ND VALUE RC DOC RC VALUE INVOICE
40842 137 130130 140 60000 3 130130 780776
40842 137 130130 141 85060 3 130130 780776
40842 138 -130130 140 60000 3 130130 780776
40842 138 -130130 141 85060 3 130130 780776
40842 139 190130 140 60000 3 130130 780776


ESTOY tratando de realizar la siguiente consulta donde los NCDOC NDDOC Y RCDOC Me queden discriminados asi:

DOC TYPE DOC. No. DOC VALUE
NC DOC 137 130130.00
NC DOC 138 -130130.00
NC DOC 139 190130.00
ND DOC 140 60000.00
ND DOC 141 85060.00
RC DOC 3 130130.00

se que con una tabla pivote se puede hacer... el problema que no conozco bien pivots en sql server
  #2 (permalink)  
Antiguo 16/01/2013, 11:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta pivot transponer columnas por filas

¿cual es la estructura de tus tablas?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 16/01/2013, 11:36
 
Fecha de Ingreso: abril-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: consulta pivot transponer columnas por filas

para efectos de que no se extienda mucho el resultado... el anterior lo resumí... pero originalmente o la consulta que se hace con el primer cuadro es este:

Código:
SELECT  
	C.Ano,
	C.Mes,
	CASE T .TipoPersona 
	  WHEN 'N' THEN (rtrim(T .PrimerNombre) + ' ' + rtrim(T .SegundoNombre) 
		+ ' ' + rtrim(T .PrimerApellido) + ' ' + rtrim(T .SegundoApellido))
	  ELSE (rtrim(T .RazonSocial)) 
	END AS Nombre, 
	C.NroDocumento, 
	NCE.NroDocumento AS NotasCredito,
	NDE.NroDocumento AS NotasDebito,
	RCE.NroDocumento AS RecibosCaja, 
	NCE.ValorDocumento AS [VLR NOTA CREDITO],
	NDE.ValorDocumento AS [VLR NOTA DEBITO],
	RCE.ValorDocumento AS VlrReciboCaja, 
	C.ValorDocumento, 
	C.Debitos, 
	C.Creditos, 
    C.FechaEmision, 
	C.FechaVencimiento
FROM CarteraCxC					 AS C 
INNER JOIN Terceros				 AS T	 ON C.IdTercero = T.IdTercero 
INNER JOIN NdCxCEncabezado		 AS NDE	 ON T.IdTercero = NDE.IdTercero 
INNER JOIN NcCxCDetalle			 AS NCD	 ON C.IdCarteraCxC = NCD.IdCarteraCxC 
INNER JOIN NcCxCEncabezado		 AS NCE  ON NCD.IdNcCxCEncabezado = NCE.IdNcCxCEncabezado 
INNER JOIN RecibosCajaDetalle    AS RCD  ON C.IdCarteraCxC = RCD.IdCarteraCxC 
INNER JOIN RecibosCajaEncabezado AS RCE  ON RCD.IdReciboCajaEncabezado = RCE.IdReciboCajaEncabezado 
INNER JOIN NdCxCDetalle			 AS NDD  ON NDE.IdNdCxCEncabezado = NDD.IdNdCxCDetalle
  #4 (permalink)  
Antiguo 16/01/2013, 12:04
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 pivot transponer columnas por filas

Cita:
Iniciado por greg_dorian Ver Mensaje
se que con una tabla pivote se puede hacer... el problema que no conozco bien pivots en sql server
U_U que pena me da tu caso, yo tambien desconozco muchas cosas, pero antes de venir a mendigar una respuesta al foro busco en google, no nada mas una pagina sino varias, y si no encuentro en español ps en ingles.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 16/01/2013, 16:19
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consulta pivot transponer columnas por filas

Que paso LIBRAS, me extraña de usted.....
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 16/01/2013, 16:22
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 pivot transponer columnas por filas

Cita:
Iniciado por iislas Ver Mensaje
Que paso LIBRAS, me extraña de usted.....
Ando de grinch el dia de hoy amigo ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 17/01/2013, 07:06
 
Fecha de Ingreso: abril-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: consulta pivot transponer columnas por filas

hola islas y libras la idea no es polemizar si quiren o no Responder o si sobre hacermelo ... sino dar pistas de hacerlo... y ya he consultado varias paginas sobre pivot y demas

volviendo al tema se puede observar que tengo las columnas notasCredito, notasDebito, RecibosCaja (en el query) y nc_doc, nd_doc y rc_doc en mi primer enunciado del post (son lo mismo) pero...
se necesita que estas 3 columnas se puedan visualizar "TRANSPUESTAS" Como una columna (DocType) e indicarme el nro documento y el valor del documento...

como una tabla pivot en excel...
  #8 (permalink)  
Antiguo 17/01/2013, 09:11
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 pivot transponer columnas por filas

a ver vamos por partes, para que quieres utilizar pivotes, si una tabla pivote parte de que quieres que un valor que regresa tu query se presente como columna? y tu lo que quieres es con diferentes criterios armar la consulta como la necesitas.......tu pregunta puede solucionarse de la siguiente manera(ya con los datos finales)

Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. invoice_no INT,
  3. nc_doc INT,
  4. nc_value INT,
  5. nd_dod INT,
  6. nd_value INT,
  7. rc_doc INT,
  8. rc_value INT,
  9. invoince INT
  10. )
  11.  
  12.  
  13. --INVOICE No. NC DOC NC VALUE ND DOC ND VALUE RC DOC RC VALUE INVOICE
  14. INSERT INTO #temp VALUES (40842, 137, 130130, 140, 60000, 3, 130130 ,780776)
  15. INSERT INTO #temp VALUES (40842, 137, 130130, 141, 85060, 3, 130130 ,780776)
  16. INSERT INTO #temp VALUES (40842, 138, -130130, 140, 60000, 3, 130130 ,780776)
  17. INSERT INTO #temp VALUES (40842, 138, -130130, 141, 85060 ,3, 130130, 780776)
  18. INSERT INTO #temp VALUES (40842, 139, 190130, 140, 60000, 3, 130130, 780776)
  19.  
  20.  
  21. SELECT 'NC DOC' AS doc_type,nc_doc,nc_value FROM #temp GROUP BY nc_doc,nc_value
  22. UNION
  23. SELECT 'RC DOC' AS doc_type,rc_doc,rc_value FROM #temp GROUP BY rc_doc,rc_value

Con eso obtienes:

doc_type nc_doc nc_value
-------- ----------- -----------
NC DOC 137 130130
NC DOC 138 -130130
NC DOC 139 190130
RC DOC 3 130130


que es lo que buscas no?

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 17/01/2013, 09:57
 
Fecha de Ingreso: abril-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: consulta pivot transponer columnas por filas

Exactamente Libra!! eso era lo que queria... con un UNION lo solucione... gracias de todas maneras

Etiquetas: tablas
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 07:32.