SQL - Select 2 registros en misma tabla, salida en 1 fila

 
Vista:
sin imagen de perfil

Select 2 registros en misma tabla, salida en 1 fila

Publicado por hector (1 intervención) el 10/05/2018 04:01:12
Estimados, buenas noches, tengo esta tabla que tiene registros que comparten algunos datos iguales (enganche):

SELECT  n_doc, t_doc, n_doc_ori, t_doc_ori
FROM    tabla
where   N_DOC_ORI in (23);

Así se ve el resultado:

N_DOC T_DOC N_DOC_ORI T_DOC_ORI
99 TAP 23 TIP
23 TIP 23 TTT

Intenté con esta query para ver si lograba ver el resultado en 1 sola fila, pero no me resulta:

SELECT * FROM
(
SELECT n_doc, t_doc, n_doc_ori, t_doc_ori
FROM tabla
GROUP BY n_doc, t_doc, n_doc_ori, t_doc_ori
)s1
WHERE s1.n_doc_ori in (23)
ORDER BY s1.n_doc, s1.t_doc, s1.n_doc_ori, s1.t_doc_ori

Así se ve el resultado: (igual que la anterior)

N_DOC T_DOC N_DOC_ORI T_DOC_ORI
99 TAP 23 TIP
23 TIP 23 TTT

No he podido conseguir que se vea así:

N_DOC T_DOC N_DOC_ORI T_DOC_ORI N_DOC T_DOC N_DOC_ORI T_DOC_ORI
99 TAP 23 TIP 23 TIP 23 TTT

¿es factible me puedan ayudar para poder ver la salida en una sola fila?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 22
Ha aumentado su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Select 2 registros en misma tabla, salida en 1 fila

Publicado por Ana (11 intervenciones) el 10/05/2018 09:41:23
Hola Hector,

Creo que deberías utilizar un PIVOT.

Echa un vistazo a estos enlaces:

https://www.techonthenet.com/sql_server/pivot.php

https://msdn.microsoft.com/es-es/communitydocs/servidores/sql-server/pivot-dinamico

No obstante, te pongo un ejemplo:

tabla principal:
id nombre
1 nombre1
2 nombre2
3 nombre3


Tabla2
id idTablaPrincipal gastos importe
1 1 ITV 100
2 2 gasolina 50
3 2 Peaje 200
4 3 ITV 100

Este sería el PIVOT:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET @dinamicPivot =
	N'SELECT id, nombre, ' + @columnName + ', importe
	FROM
		(
			SELECT  CGA.id, CGA.nombre, CGA.nombre2 As columna, CGA.baseImponible As importe
			FROM	 tablaPrincipal AGF
					INNER JOIN tabla2 TC ON TC.id = AGF.id
		) As miPivot
	PIVOT
		(
		AVG(miPivot.BI)
		FOR miPivot.columna IN (' + @columnName + ')
		) As pivotable
	ORDER BY fecha'

Y lo que me aparece es:

id nombre ITV gasolina Peaje
1 nombre1 100
2 nombre2 50 200
3 nombre3 100

Espero que te valga.

Un saludo

Ana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar