Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/07/2011, 09:04
UserCod
 
Fecha de Ingreso: octubre-2005
Mensajes: 76
Antigüedad: 18 años, 6 meses
Puntos: 5
Respuesta: Problema con mysql en mi consulta

Es dificil que ABB con Estado 'Muy probable" no salga ya que ese registro cumple con todos los criterios del filtro para salir en la carga/consulta. Te diria que algo bueno seria que en vez de existir mas de un estado de la misma compania, que al ser rechazado, editar el mismo registro cambiando su estado, pero me imagino que necesitan una especia de historial donde se aprecia un estado que tuvo un estado que tuvo luego.

No se... sera que crees una tabla hermana? y que tu aplicacion cuando cambien a un estado especifico, "Rechazado" por ejemplo, que mueve los registros con ese Estado a una tabla vendedores_rechazados o algo asi? para conservar estados de ese tipo pero no en la misma tabla.

Asi podrias hacer una SQL donde si se emparejan registros de entre las dos tablas (nombre de la empresa en ambas tablas pero diferente estado), entonces no mostrarlo.

Otra cosa podria ser agregar otro campo mas a la tabla, puede ser un campo integer: 0/1
ABB un dia fue ingresado "Muy Probable", con ese campo en 0, otro dia otro registro de ABB ingresado como "Rechazado" campo en 1. Cuando una empresa sea Rechazada, con una SQL buscas que otros registros tengan ese mismo nombre de Empresa y si el campo integer esta en 0 (porque su Estado es "Muy probable") cambiar el campo integer a 1.

De esa forma:
- ABB "Muy Probable" 1 --> SQL encuentra ABB en dos registros y si existe un "Rechazado" cambiar el 0 a 1
- TELEFONICA "Muy Probable" 0
- ABB "Rechazado" 1 ---> originalmente en 1
- FERREYROS "Muy probable" 0

Es decir, algo tendras que inventarte porque ese sexto sentido o intuisiones es algo que obviamente no tienen los sistemas informaticos y hay que ayudarles, tienes que agregar algun campo mas.. que permita ayudarte a excluir del filtrado de la SQL esos registros.

Supongamos que ese nuevo campo se llame: Aprobacion (integer 0/1)
Select * from vendedores Where ....el filtrado... And Aprob<>1

ABB "Muy Probable" y ABB "Rechazado" tendran Aprob=1 igual como BBVA Aprob=1
y todos los demas con Aprob=0
O creas varios niveles, no solo 0,1... por si luego debe buscarse por otro item de Estado.

Bueno es lo que al momento se me ocurre y por mas que sea extrano o lo mas ocurrentemente loco, pues no se que mas podria ser, pq tu caso es de una sola tabla, ya que si al menos hubiese mas involucradas, aun con eso, se tendria que evaluar si la coincidencia de registros con otras tablas pueda o no ayudar a excluir registros que Si estan cumpliendo con todos los campos del Filtrado, por eso la idea de tener que agregar algo al filtrado que ayude a la SQL a excluir esos registros que no quieres que salgan.

Creo que asi, podrias conservar el historial de Estados, y ayudar al sistema a darle algo mas de precision en incluir o excluir registros a la consulta.

Suerte! o/