SQL - Cláusula TRANSFORM para SQL-Server

 
Vista:

Cláusula TRANSFORM para SQL-Server

Publicado por Jerry (15 intervenciones) el 21/05/2003 01:08:18
Saludos.
A todas aquellas personas que han programado en MS Access y SQL Server, se habrán dado cuenta que en MS Access existe la cláusula TRANSFORM para realizar consultas de referencias cruzadas; sin embargo, no existe algo similar en SQL-Server (o al menos no hasta donde yo sé, si lo hay por favor avisenme). Al yo requerir dentro de mis desarrollos una clásula con esa funcionalidad, me di a la tarea de desarrollar un Stored Procedure que hiciera exactamente lo mismo, y al parecer lo he logrado. El programa actualmente se usa a nivel de producción en la generación de reportes en una empresa importante, aunque tiene por ahí pequeñas limitantes, pero tambien tiene adiciones de mi parte que considero son muy útiles (básicamente se puede especificar el orden deseado de las columnas, especificar de cual número a cual número de columna se desea visualizar, y la opcion de que los resultados sean depositados en una tabla). Si alguna persona está interesada, con mucho gusto compartiré este desarrollo con miras a mejorarlo con base a sus observaciones y sugerencias. Mi correo es: jerrysw2000(arroba)yahoo.com.mx
Saludos
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:Cláusula TRANSFORM para SQL-Server

Publicado por Isaías Islas (5072 intervenciones) el 21/05/2003 01:35:07
En el buscador, teclee CASE, instruccion similar a TRANSFORM de Access
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:Cláusula TRANSFORM para SQL-Server

Publicado por Jerry (15 intervenciones) el 21/05/2003 01:57:16
No, amigo, CASE es una cláusula similar a la estructura de control SELECT CASE CASE... END SELECT, que puede ser usada dentro de tus instrucciones SQL para retornar un valor dependiendo de diversas condiciones, pero no te ofrece la funcionalidad del TRANSFORM de access.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Isaías Islas (5072 intervenciones) el 21/05/2003 02:13:55
TRANSFORM hace las REFERENCIAS CRUZADAS, ¿cierto?, bueno con CASE de SQL se construyen las referencias cruzadas, ¿desea que le envie todo un procedimiento para que lo revise?
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:Cláusula TRANSFORM para SQL-Server

Publicado por Jerry (15 intervenciones) el 21/05/2003 05:24:23
Asi es, la cláusula CASE es la base para la construcción de las referencias cruzadas en SQL, pero lo que ud. únicamente puede construir con el CASE es una consulta estática, con un número fijo de columnas, a diferencia del TRANSFORM, la cual realiza la referencia cruzada de forma dinámica, es decir, dependiendo de la expresión que hayamos especificado como pivote, se crean dinámicamente tantas columnas como valores distintos nos arroje esa expresión pivote. Y es eso exactamente lo que hace el procedimiento que he desarrollado.
Saludos.

P.D. No es necesario que me envie todo el procedimiento para que lo revise. Mejor si quiere, yo le envio el mio, para ud. le heche un ojo.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Isaías Islas (5072 intervenciones) el 21/05/2003 05:29:35
Perfecto, estare en espera del Store para poder revisarlo, el que yo tengo, tambien lo hace dinamicamente.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Jerry (15 intervenciones) el 21/05/2003 05:37:32
O.K. Sr. ya se lo envié, Espero sus comentarios. Me podria enviar el que ud. tiene, para revisarlo tambien?? 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

RE:Cláusula TRANSFORM para SQL-Server

Publicado por Isaías Islas (5072 intervenciones) el 21/05/2003 17:50:59
Gracias lo he recibido, de igual forma y por el mismo medio, le he enviado el que yo poseo.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Jerry (15 intervenciones) el 21/05/2003 19:43:27
Interesante su Procedimiento, y no es por menospreciar, ya lo analicé, y considero que tiene varias limitantes que el procedimiento que he desarrollado no tiene. La primera: El número de columnas que puede desplegar dinámicamente a la derecha. Su procedimiento solo soportó 27 columnas, y me truncó la instrucción SQL Final. El que he desarrollado me ha llegado ha desplegar mas de 100 columnas, sin problemas. La segunda: Al parecer su procedimiento solo puede realizar una función agregada a la vez, es decir, o solo un sum o solo un count, etc. El procedimiento que he desarrollado puede calcular expresiones complejas, realizando operaciones con las funciones agregadas (ejemplo: (SUM(Saldo) * SUM(Remanente)) / AVG(Saldo)).
Reconozco que el procedimiento mio, no tiene la opción para desplegar el "Row Summary". Pero, hablando en los términos de su procedimiento, la función que desempeña el @Column_Head_SQL, considero que debería ser de forma interna, ya que se deduce que a partir de lo que se especifique como pivote (@Column_Heading), se deberán determinar los posibles valores que puede tomar, y que éstos deberan salir del mismo @Base_Data_SQL especificado.
Otra deficiencia que veo es que al parecer no tiene forma de especificar el orden deseado de los registros (o al menos no he encontrado la forma de que sea tomado en cuenta el ordenamiento tanto de registros como de columnas).
Gracias por esta retroalimentación.
Saludos.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Isaías Islas (5072 intervenciones) el 21/05/2003 23:38:34
Un analisis que me deja sumamente satisfecho, por el contrario y a fuerza de ser honesto, no he podido revisar su procedimiento, el exceso de trabajo me esta acabando, ahora bien, ¿podriamos complementar ambos procedimientos y hacer un nuevo?, claro, no espero que se nos reconozca como los "Lennon & McCarney" del SQL, pero habria muchas personas que nos lo agradecerian.

Saludos.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Jerry (15 intervenciones) el 21/05/2003 23:47:45
Claro Sr.
Esperaré a que tenga Ud. un tiempo para darle una checada y me diga sus observaciones.

Estamos en contacto. 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

RE:Cláusula TRANSFORM para SQL-Server

Publicado por Enrique Barragan (1 intervención) el 23/05/2003 19:28:50
Hola a todos, estoy intrigado por sus procedimiento me gustaria si es posible revisarlos, si pudieran enviarme un correo se los agradeceria, actualmente me estoy dando de topes con un procedimiento un poco complejo para mi, pero creo que sus analisis me pueden ayudar;
lo que yo estoy tratando es: insertar en una tabla los resultados de una consulta de dos tablas indexadas por (Empresa y Empleado) y un rango de fechas inicial y final, en las dos tablas, una de las tablas tiene dos campos (Fecha_Inicial y Fecha_final) pero la otra tiene la Fecha_Inicial pero en lugar de Fecha_Final tiene un campo "Duracion" que es el numero de días que pasaran apartir de la fecha de inicio, es decir Fecha final = fecha inicial + duracion, y el rango de fecha inicial y final de una tabla debe estar por lo menos un día en el rango inicial y final de la tabla 2 parece facil, pero no me sale el procedimiento, si tienen tiempo y desean ayudar les paso las tablas y el resultado que busco mas detallado, saludos y gracias por su atencion :), Dios les bendiga.
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:Cláusula TRANSFORM para SQL-Server

Publicado por Isaías Islas (5072 intervenciones) el 23/05/2003 19:39:38
Hola

De mi parte con gusto le ayudo, solo envie el layout de sus tablas.

Saludos
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

Cláusula TRANSFORM para SQL-Server

Publicado por Antonio Fernandez (1 intervención) el 04/12/2013 07:27:48
Estimados Sres,

tengo un problema similar, necesito convertir instrucciones TRANSFORM combinadas con la instruccion PIVOT a sentencias en SQL Server, serian tan amables de hacerme llegar su procedimiento para poder reutilizarlo en mis desarrollos de SQL Server.

Muchas gracias por adelantado.

Un cordial saludo,
Antonio Fernandez
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