Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/08/2008, 02:14
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Consulta SQL muy rara...

Código:
SELECT art_db.codigo, 
   art_db.nombre, 
   art_db.clase1 AS Familia, 
   art_db.clase2 AS Fabrica, 
   art_db.unidmed AS UM, 
   Stock_db.stk_fisico AS Stock, 
   art_db.art_dispon AS NV, 
   art_db.art_llegar AS OC, 
   Stock_db.stk_fisico - art_db.art_dispon + art_db.art_llegar AS Disponible
FROM (art_db LEFT OUTER JOIN Stock_db 
           ON art_db.nreguist = Stock_db.articulo)
WHERE art_db.tipo = 1 
   AND (Stock_db.cod_bodeg = 1 or Stock_db.cod_bodeg is null)
   AND (Stock_db.numempstk = 1 or Stock_db.numempstk is null) 
   AND art_db.imputable = 1 
   AND art_db.eliminado = 0;

Las restricciones sobre Stock_db no pueden ser absolutas, si Stock_db.cod_bodeg tiene que ser 1, luego no saldran los registros que esten en art_db y no esten en Stock_db puesto que si no estan no pueden tener un 1 en ese campo, si permites el nulo luego si saldran....

Los parentesis verdes son absolutamente necesarios....

Stock_db.stk_fisico - art_db.art_dispon + art_db.art_llegar AS Disponible

No se que bbdd usas pero esto puede dar error cuando Stock_db.stk_fisico sea nulo tienes que buscar una función definida en tu motor que convierta los nulos a cero (nz() o ifnull() depende del motor que uses)

Quim

Última edición por quimfv; 08/08/2008 a las 02:22