Ver Mensaje Individual
  #4  
Antiguo 17-01-2009
Bpascal Bpascal is offline
Miembro
 
Registrado: ene 2009
Posts: 14
Reputación: 0
Bpascal Va por buen camino
Yo tambien pienso que ese SELECT esta muy largo y con toda la pinta de deficiente; pero para ser honesto esta muy largo que no me puse a ver todo lo que pide y si realmente esa es la unica manera de hacerlo.

Pero veo que utilizas un tan solo WHERE con todas las condiciones (amarradas usando infinidad de ANDs) y select anidados para seguramente relacionar tablas, obtener y resumir datos, y todo lo que se necesite.

Cita:
Busca los codigos en la tabla insumos (aproximadamente 1000 registros), utiliza estos codigo en la tabla inventario dado que la suma de todos los ingresos, menos la suma de todos los egresos. (calcula la cantidad de existe de cada uno de los insumos).
Segun te entiendo tienes la tabla INSUMO que es el archivo maestro (o catalago de codigos donde estan todas las descripciones de los productos) y tienes una tabla inventario donde estan los movimientos que podrian o no haber de cada codigo en la tabla insumo; es decir a cada registro en insumos le aplicas un querry complicado buscando si tiene o no datos en la tabla inventario eso me suena a que equivale a tener por un lado una guia telefonica y por otro lado tienes una lista de 30 nombres para averiguar que telefono tiene cada nombre de esa lista, tu te remites al primer nombre en la guia telefonica empezando por la letra "A" y buscas si ese nombre es de alguno de los 30 que andas buscando en tu lista, y haci continuas con el siguiente nombre en la guia pasando desde la "A" a la "Z". Eso es super deficiente, lo deves de hacer al reves;

Lo primero que deves de dominar es enlazar las tablas usando indices esto se hace enlazandolas usando INNER JOIN, despues deves en UNA SOLA PASADA resumir la tabla de inventarios por codigo usando los criterios que necesites, y despues linkear ese resultado con la tabla de insumos para obtener el listado final.

Última edición por Bpascal fecha: 17-01-2009 a las 03:00:37.
Responder Con Cita