![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
TRANSFORM de Acces -> SQL Server
Hola a todos,
Una preguntita. ¿ Existe algo similar al TRANSFORM de Access , o algo similar al DECODE de Oracle en SQL Server ? Muchas gracias de antemano. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#2
|
||||
|
||||
Saludos,
Cita:
Ejemplo: Tienes una tabla llama Pivot con esta estructura y contenido, Código:
Year_____Quarter_____Amount 1990______1__________ 1.1 1990______2__________ 1.2 1990______3__________ 1.3 1990______4__________ 1.4 1991______1__________ 2.1 1991______2__________ 2.2 1991______3__________ 2.3 1991______4__________ 2.4 Con esto:
puedes transformala a Código:
Year___Q1____ Q2____Q3_____Q4 1990____1.1____1.2____ 1.3____ 1.4 1991____2.1____2.2____ 2.3____ 2.4 Se agrupa el Año 2 registros y los Quarter se convierten en Columnas (Q#)mostrando el contenido respectivo a cada año. Espero ser claro y que te sirve Última edición por vtdeleon fecha: 23-07-2005 a las 06:33:43. |
#3
|
||||
|
||||
Gracias, lo probaré cuando pueda, ya que ahora estoy a otros temas más urgentes e importantes == "HACER YA"
Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#4
|
||||
|
||||
Probado y funcionando.
Gracias por la ayudita, amiguetes
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#5
|
|||
|
|||
Es muy útil sólo que en mi caso una oficina puede tener movimiento hasta en 500 rutas y tendria que poner fijos los numeros de las rutas para poder convertirlas a columnas y si en algún momento se da de alta otra ruta pues tendría que estar modificando el query.
Voy a utilizar esto combinado con tablas temporales para almacenar el movimiento de cada ruta. Michismias gracias me ayudo un chorral como decimos por aca en el Norte. Saludos ![]() Cita:
|
#6
|
||||
|
||||
Creo que si necesitas una consulta que tenga 500? columnas, tienes un fallo de analisis. No creo que nadie pueda sacar información válida de una fuente de información así.
Una consulta de este tipo, no creo que deba - bajo mi modesta opinión - sobrepasar el ancho de una hoja de papel apaisada. Yo pondría las columnas Por otro lado, si no sabes cuantas columnas vas a tener, creo que lo más conveniente es que la crees de modo dinámico; ya sabes, a base de hacer una consulta con las columnas que vas tener y otra que se construya con esa información Consulta.SQL.Add( 'select campoA '); n:= 1; Consulta_de_campos.Open; while not Consulta_de_campos.eof begin Consulta.SQL.Add( ', SUM(CASE Quarter WHEN '+Quotedstr(Consulta_de_campos.Fields[0].AsString)+' THEN COL'+inntostr(n)+' ELSE 0 END) AS COL'+inttosr(n)); Consulta_de_campos.next; n++; end Consulta.SQL.Add( ' from tabla group by campoA'); Consulta.Open Siendo Consulta la query que creas y consulta de campos una query que te de los campos que vas a tener 'select distinct campocolumna from tabla' No está muy currado pero creo que se entiende Espero que te sirva de ayuda. Un saludete
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - Última edición por fjcg02 fecha: 26-09-2005 a las 22:00:18. |
![]() |
|
|
![]() |
|