FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tratando de usar campos "calculados" en consultas con MySQL
Hola a todos...
Mi consulta es simple (o compleja, según como se mire) : Necesito hacer una consulta sobre una tabla MySQL donde hago algunos cálculos usando la función "IF" y a la cual le pongo un nombre a la columna que los hace (uso el AS...), ¿puedo crear otra columna tomando valores de las columnas antes creadas?...aqui va mi ejemplo : Código SQL [-]Select (IF(cc161.BAJ161 = 1 and cc161.UFA161 <= '2009-01-01' , 1, 0 ) ) AS BAJ, (IF('BAJ'=1 , 'Baja' , 'Alta' ) ) AS Bajas From CC161 Explico : Con la función IF creo una columna que llamo BAJ, y después necesito obtener el valor de esa columna para hacer otro cálculo. Cuando intento ejecutarla, me avisa que la columna BAJ no existe bajo el mensaje "1054-Unknown column 'BAJ' in field list". Entonces, ¿puedo recuperar el valor de BAJ para emplearla en la creación de otra columna?. Probé hasta tratando de usar variables de usuario en la consulta, pero parece que a mi Delphi 6 con ADO no les gusta eso de variables. Desde ya, muchas gracias. |
#2
|
||||
|
||||
No creo que esto sea posible. No sé siquiera si algún gestor permita esto.
// Saludos |
#3
|
|||
|
|||
Román, muchas gracias por la respuesta.
Me temía que era algo imposible, o sea que, si en una columna tengo una sentencia medianamente compleja y después necesito usar su valor, debo escribir de nuevo lo que puse en la columna anterior más lo que necesito. El ejemplo que puse es muy simple, en la consulta que estoy intentando armar, son mucho mas complejas, y si a eso le agrego más sentencias, se torna algo imposible de entender...no sé que otras alternativas tengo, se me agotaron las neuronas. Nuevamente, gracias. |
#4
|
|||
|
|||
Si mal no recuerdo, access si lo permite, MSSQL Server no, desconozco algún otro...
a veces lo que uso es usar una vista para generar unos campos y otra consulta sobre la vista para generar los demas... |
#5
|
||||
|
||||
Eso... o copiar y pegar dentro de la misma consulta, es decir, repetir el cálculo para la otra columna. No es bonito, pero funciona
// Saludos |
#6
|
|||
|
|||
Gracias luisgutierrezb por la respuesta.
No quiero hablar de más, pero me habia parecido que lo habia visto funcionar en algún lado...y si fuerzo mi memoria, me parece que era en SQLServer...pero no estoy seguro. La consulta que intento hacer funcionar es muy propia de un módulo de mi sistema que estoy armando, no sé si justifica armar una vista...llegado el caso y al no encontrarle la vuelta, tal vez tenga que solucionarlo asi. Nuevamente, muchas gracias. |
#7
|
|||
|
|||
Quizas puedas utilizar una subconsulta con una tabla anidada. Prueba esto:
|
#8
|
|||
|
|||
me hiciste reir Román con la respuesta, es verdad, copy and paste.Que quede bonito o no, no es tan grave, me preocupa que una vez que esté funcionando, al tiempo tenga que hacer una modificación y no entienda que quise hacer con el código.
Seguiré buscando alternativas. |
#9
|
|||
|
|||
Cita:
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cursor "intermitente" al realizar consultas. | mlara | Firebird e Interbase | 1 | 24-05-2008 02:51:26 |
Error Invalid blob handle in record buffer??? sin usar "Blobs to cache" | varuhs | Conexión con bases de datos | 4 | 22-01-2007 21:19:53 |
Firebir y usar "IF" en la clausula "SELECT" | papulo | SQL | 6 | 25-07-2006 21:38:04 |
Campos "boolean" en MySql | salvica | MySQL | 3 | 01-03-2005 15:02:16 |
|