Access - Campo calculado en Consulta de SQL

   
Vista:

Campo calculado en Consulta de SQL

Publicado por Raziel (61 intervenciones) el 13/07/2009 22:48:58
Hola a todos, pues nuevamente para molestarles con una pregunta, me explico:

Se puede hacer un especie de If en una consulta de sql para un campo calculado??
Por ejemplo

Consulta
fldCantidad---fldTipo---fldImporte---Total
5 P 10 10
5 C 5 25

Donde Total es el campo calculado, si fldTipo es P solo fldImporte, si fldTipo es C entonces fldCantidad x fldImporte.
Espero haberme explicado, a ver si se puede...
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:Campo calculado en Consulta de SQL

Publicado por Raziel (61 intervenciones) el 14/07/2009 17:39:23
Ok, ya encontre la respuesta, SQL tiene una funcion llamada Choose muy parecida a una matriz, la sintaxis al parecer es asi

Choose (Indice,Comando1,Comando2,...,Comando29)

Entonces tenemos que Indice forsosamente tendra que ser un numero entre el 1 y el 29 (no estoy muy seguro del maximo posible, pero no supe encontrar mas informacion de esta funcion), una ves teniendo este valor la funcion contara hasta encontrar la operacion que le corresponda partiendo de esta idea, tenemos que

Si Indice = 1 --|-- Ejecuta --|-- Comando1
Si Indice = 2 --|-- Ejecuta --|-- Comando2
...
Si Indice = 29 --|-- Ejecuta --|-- Comando29

Que funcion tan increible.
Saludos a todos!!!!
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:Campo calculado en Consulta de SQL

Publicado por Raziel (61 intervenciones) el 14/07/2009 18:01:48
Una anotacion mas al margen, es probable, como me ha pasado a mi, que el resultado de la ejecucion de esa consulta devuelva un caracter numerico pero que SQL de por sentado que se trata de texto, en principio nos podriamos dar cuenta por que nos alinea los numeros a la izquierda, seguro que hay formas mas elegantes de resolverlo, pero pues, si el resultado lo multiplicamos por 1, cuando ejecutemos la consulta nos devolveras numeros, quedaria mas o menos asi...

Choose (Indice,Comando1,Comando2,...,Comando29)*1

Ahora si, 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