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

Consulta SQL muy rara...

Estas en el tema de Consulta SQL muy rara... en el foro de Bases de Datos General en Foros del Web. Amigos hago esta consulta, pero de la tabla art_db no me devuelve todos los registros es decir hay 1000 y en stock hay 800 pero ...
  #1 (permalink)  
Antiguo 07/08/2008, 16:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 17
Antigüedad: 15 años, 8 meses
Puntos: 0
Consulta SQL muy rara...

Amigos hago esta consulta, pero de la tabla art_db no me devuelve todos los registros es decir hay 1000 y en stock hay 800
pero solo devuelve 800 y no los 1000 de la primera tabla requiero saber el stock de todos.


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) AND (Stock_db.numempstk = 1) AND (art_db.imputable = 1) AND (art_db.eliminado = 0)

ayuda plisss
  #2 (permalink)  
Antiguo 08/08/2008, 02:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
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
  #3 (permalink)  
Antiguo 08/08/2008, 07:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 17
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Consulta SQL muy rara...

Muchas gracias , funciono, tenias razon los nulos en parentesis de lo contrario realiza otra cosa.

Gracias.
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 11:23.