entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Campo temporal en tabla MYSQL

Buenas, disculpen que pregunte estas cosas que tal vez son faciles, pero pues los querys no son lo mio jeje.

Tengo dos tablas, "comercios" y "transacciones", tengo una consulta donde sumo el monto de las transacciones y los agrupo por comercio

select nombre_comercio,sum(monto) from transacciones inner join comercios on comercio.comercioid = transacciones.comercioid;

lo que quiero hacer es agregar un "comercio temporal" que no existe en la tabla de comercios (por razones de mi trabajo no puedo modificar la tabla de comercios), dependiendo algunos IF

select if(tipo_transaccion = 0,'nombre_comercio = Nuevo comercio',comercioid = 999),nombre_comercio , sum(monto) from.... algo asi... espero me haya explicado bien.

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola Alejandro,

a lo que te referís con "campo temporal" es mejor referirse como "campo calculado" es decir, un dato que no es una columna de la consulta, pero que se calcula mediante una operación aritmética o lógica.

En tu caso, podrías hacer algo así:

SELECT IF(tipo_transaccion = 0, 'Nuevo comercio', nombre_comercio) AS nombre_calculado_comercio,
IF(tipo_transaccion = 0, 999, comercioid) AS id_calculado_comercio,
SUM(monto) 
FROM transacciones 
INNER JOIN comercios ON comercio.comercioid = transacciones.comercioid;

La función IF en MySQL requiere 3 parámetos y funciona evaluando el primero: si es verdadero, devuelve el segundo y si es falso devuelve el tercer parámetro.

Luego por comodidad para el acceso a los datos, se puede poner un alias con AS para acceder al valor.

Te dejo el manual del IF para profundizar sobre el tema: https://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if

Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta