Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

esta consulta es posible

Estas en el tema de esta consulta es posible en el foro de Mysql en Foros del Web. Hola, perdonar por el titulo pero sabia como ponerlo. a ver, tengo una tabla de movimientos de la siguiente manera. id_movimiento id_almacen_origen id_almacen_destino fecha tipomovimiento ...
  #1 (permalink)  
Antiguo 30/10/2006, 10:52
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
esta consulta es posible

Hola, perdonar por el titulo pero sabia como ponerlo.
a ver, tengo una tabla de movimientos de la siguiente manera.
id_movimiento
id_almacen_origen
id_almacen_destino
fecha
tipomovimiento
cantidad

El tipo de movimiento puede ser una recepcion (r), una expedicion (e) o un trapaso entre almacenes (t)

lo q tengo q hacer es sacar todos los movimientos de un almacen dado por un usuario. El problema esta en q:
-cuando es una recepcion el almacen se graba en id_almacen_destino, y el almacen origen queda a 0,
-cuando es una expedicion el almacen se graba en el id_almacen_origen,y en id_almacen_destino se guarda el codigo del cliente donde va a parar esa expedicion. (el codigo de cliente puede ser = q el almacen ya q el codigo son autonumericos y son dos tablas diferentes)
-y en caso de traspaso puede ser los dos. (los traspasos solo pueden ser entre almacenes)

tendria q hacer como un if dentro la consulta pero no ser si es posible...
en caso de q sea recepcio mirame este campo, si es expedicion mirame este otro y en caso de q sea un traspaso mirame los dos.

Alguna idea? es posible? q manera de complicarse la vida verdad?

saludos y gracias
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 30/10/2006, 15:41
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Mensaje A ver

A ver si entendi, tienes los siguientes campos:

id_movimiento
id_almacen_origen
id_almacen_destino
fecha
tipomovimiento
cantidad

Si es una recepcion, el id_almacen_destino grabara el dato, y el id_almacen_origen=0

Si es una expedicion, el id_almacen_origen grabara el dato,y en id_almacen_destino guardaras el codigo del cliente.

Aqui viene mi primera sugerencia, y es que el codigo del cliente sea otra columna en la tabla, pues puede ser que en algun momento cambien los datos de los id ya sea de almacenes o clientes, en fin, es solo una sugerencia.

Ahora, se me ocurre que podrias hacer un if pero para eso necesitarias una funcion hecha en la propia base de datos, donde si puedas usar el if, de lo contrario, tendrias que en el lenguaje de programacion que uses hacer el if y dependiendo de la accion asignarle a una variable la consulta que luego sera enviada para ser ejecutada.

Bueno, espero tengas suerte.
  #3 (permalink)  
Antiguo 31/10/2006, 01:55
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Cita:
Aqui viene mi primera sugerencia, y es que el codigo del cliente sea otra columna en la tabla, pues puede ser que en algun momento cambien los datos de los id ya sea de almacenes o clientes, en fin, es solo una sugerencia.
esto es lo q habia pensado pero... ya hay registros en esta BD y no ser.. tendre q modificar la entrada esa de datos etc etc etc... pero weno... agrandes males grandes remedios. Y asi me aseguro q en un futuro este bien exo!

Cita:
Ahora, se me ocurre que podrias hacer un if pero para eso necesitarias una funcion hecha en la propia base de datos, donde si puedas usar el if, de lo contrario, tendrias que en el lenguaje de programacion que uses hacer el if y dependiendo de la accion asignarle a una variable la consulta que luego sera enviada para ser ejecutada.
y ya por curiosidad! como se puede crear funciones en una Base de Datos? como podria crear la sentencia if? desde PHP podria crear esa funcion?

saludos y gracias
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #4 (permalink)  
Antiguo 31/10/2006, 08:02
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Respondiendo

Bueno, pues habria que ver que base de datos es, pues algunas no tienen el soporte de crear funciones.

En php, se podria hacer de la siguiente manera:
<?php
$pregunta;
$pregunta=3;
if($pregunta==3)
{$consulta="select * from prueba";
}else
{$consulta="select * from prueba where ID='$pregunta'";
}

$query=odbc_exec($consulta,$conx);
while($row=odbc_fetch_array($query))
{
echo $row['Frase'];
}
?>
Suerte
  #5 (permalink)  
Antiguo 31/10/2006, 08:09
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
hola!
no me ha kedado muy claro eso... pero bueno... ya he exo los cambios pertinentes para q este bien exo.. opte por la primer opcion de modificar la BD!

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:36.