SQL - filas a columnas

 
Vista:

filas a columnas

Publicado por roy (15 intervenciones) el 17/09/2003 22:43:54
necesito convertir filas a columnas, como le puedo hacer, lo que pasa que asi lo requiere un reporte que necesito, imaginemos, que mi informacion de guarda en un encabezado y detalle donde el detalle puede ser uno de muchos, pero ahora necesito un reporte en cual el detalle pase a una solo fila, bueno cierta informacion, ejemplo

encabezado
100,comidas, alonso cortez, 1500.00

detalle
100,1,arroz,500.00
100,6,cafe,200.00
100,5,pastel,800.00

entonces debe hacer un reporte en una solo fila
100,comidas, alonso cortez, arroz-cafe-pastel,1500.00

pero como puedo convertir las filas del detalle a una sola fila, gracias por su ayuda utilizo sql server 7
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

RE:filas a columnas

Publicado por Isaías Islas (5072 intervenciones) el 18/09/2003 00:50:22
Pues mas o menos intento entender el problema, pero tengo una pregunta, el conjunto de: arroz-cafe-pastel

Podria volverse inmenso, dependiendo de los "detalles" que se tengan registrados, ¿ya considero esa posibilidad?
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

RE:filas a columnas

Publicado por roy (15 intervenciones) el 19/09/2003 00:41:33
asi es el detalle puede ser inmenso, lo que si es seguro que el detalle no se repetira
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

RE:filas a columnas

Publicado por Jerry (15 intervenciones) el 18/09/2003 22:04:43
Hola que tal!!! te envio la solución a tu correo, espero que te sirva...
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

RE:filas a columnas

Publicado por roy (15 intervenciones) el 19/09/2003 00:53:49
hola de los 2 archivos que me has enviado al que mas le he entendido es al de solucion QUERY.sql, pero tengo una duda respeto a esta parte del texto

EXECUTE TRANSFORM
'A.Clave, A.Descripcion, A.Nombre, A.Valor',
'B.Num', 1,
'MAX(B.Descripcion)',
'##xMaestro as A INNER JOIN ##xDetalle AS B ON (A.Clave = B.Clave)',
NULL,
'A.Clave, A.Descripcion, A.Nombre, A.Valor',
NULL,
NULL,
NULL,
NULL,
'##PreResultados'
GO

en mi ayuda no encuentro la palabra TRANSFORM, estoy trabajando con SQL Server 7 se supone que intentas insertar en la tabla temporal ##PreResultados, pero si esto lo paso al analizador, claro con mis tablas, pues me marca errores a partir de este codigo

Servidor: mensaje 2812, nivel 16, estado 62, línea 16
No se encontró el procedimiento almacenado 'TRANSFORM'.
Servidor: mensaje 208, nivel 16, estado 1, línea 0
El nombre de objeto '##PreResultados' no es válido.
Servidor: mensaje 3701, nivel 11, estado 5, línea 40
No se puede quitar tabla '##PreResultados'. No existe en el catálogo del sistema.

bueno es cierto falta declarar ##PreResultados, pero EXECUTE TRANSFORM, si no le entiendo

ojala me puedas sacar de esta duda, gracias
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

uppsss!!!, perdon

Publicado por roy (15 intervenciones) el 19/09/2003 00:59:28
perdon es que habia primero ejecutar el de TRANSFORM 2.SQL, para que se crearan los procedimientos almacenados, dejame checarlo con mis tablas y te comento
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

ya esta

Publicado por roy (15 intervenciones) el 19/09/2003 01:11:27
hola ya ejecute el ejemplo, pero el resultado es el sig, con los datos que tu das de ejemplo

Clave Descripcion Nombre Detalle Valor
----------- -------------------------------------------------- -------------------------------------------------- --------------------------------------------------- -----------------------------------------------------
100 Comidas Alonso Cortez -Cafe 1500.0
200 Comidas Persona X 1500.0
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

RE:ya esta

Publicado por Jerry (15 intervenciones) el 19/09/2003 01:35:43
Que tal!!!

Yo lo probé y me arrojó los resultados que te puse en el archivo Solución QUERY.sql, con las tablas y valores que se crean al principio.

Clave Descripcion Nombre Detalle Valor
----------- -------------------------------------------------- -------------------------------------------------- -------------------------- -----------------------------------------------------
100 Comidas Alonso Cortez Arroz-Pastel-Cafe 1500.0
200 Comidas Persona X Frijol-Chocolate-Helado 1500.0

Si no te arroja estos resultados, por favor enviame tus tablas, para ver que es lo que esta faltando por ahi....

Saludos
Jerry
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

asi es

Publicado por roy (15 intervenciones) el 19/09/2003 17:01:27
es yo todavia no lo he probado con mis tablas, tambien hice la prueba con los valores que se insertan en las tablas del archivo Solución QUERY.sql y me da este resultado

(1 filas afectadas)

(1 filas afectadas)
.
.
.
.

(1 filas afectadas)

(1 filas afectadas)

Advertencia. Valor nulo eliminado del agregado.
Clave Descripcion Nombre Detalle Valor
----------- -------------------------------------------------- -------------------------------------------------- --------------------------------------------------- -----------------------------------------------------
100 Comidas Alonso Cortez -Cafe 1500.0
200 Comidas Persona X 1500.0

y solamente me da cafe de alonso cortez y persona x no me da nada de sus detalles
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

Problema resuelto con TRANSFORM de SQL Server

Publicado por Jerry (15 intervenciones) el 18/09/2003 22:12:23
Esta solución que te he enviado se ha resuelto con el TRANSFORM para SQL Server que he desarrollado, espero que sea de utilidad.

Saludos

-Jerry-
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