none
Datos relacionados de dos tablas RRS feed

  • Pregunta

  • Hola buenas tardes , estoy haciendo un procedimiento almacenado que me muestra la suma de las existencias de los articulos en una relacion hasta ahi va todo perfecto.
    select idarticulo ,marca,unidadMedida,descuentoRecargo,precioCosto,codigoIvaVenta, sum(existencia) as existencia  
    from articulo inner join vencimiento_lote 
    on  
    idarticulo=fk_articulo
    where codigoBarra=@textobuscar or nombre like  @textobuscar+'%'
    
    group by idarticulo ,marca,unidadMedida,descuentoRecargo,precioCosto,codigoIvaVenta

    El problema se me presenta al querer mostrar todos los datos de la tabla articulos por mas que no tengan relacion con vencimientos , lo he intentado de mil maneras y lo mas cerca que estuve es que me muestra todos los articulos pero me replica la suma de las existencia. En fin lo que quiero hacer y no puedo es mostrar todos los articulos con su suma de existencias (que esta en la tabla vencimiento y lote ) pero que si no tiene relacion que me lo muestre vacio sin existencia pero no puedo lograrlo. Gracias de antemano.
    martes, 6 de febrero de 2018 20:54

Respuestas

  • Hola:

    Por lo que te he entendido, tu relación no es una inner join, dado que las relaciones inner join te muestran los registros coincidentes de ambas tablas, porque hay articulos que no tienen vencimiento_lote. Por tanto tienes que hacer un left outer join, de manera que te devuelva todos los articulos, y debes de incluir, dado que existencias, supongo que es de vencimiento_lote, un where existencia is null, o en el propio on....

    https://aprendiendosqlserver.blogspot.com.es/2011/01/aprendiendo-usar-left-outer-join.html

    Este enlace es simple, pero quizá te puede ayudar.

    Un saludo

    martes, 6 de febrero de 2018 21:04

Todas las respuestas

  • Hola:

    Por lo que te he entendido, tu relación no es una inner join, dado que las relaciones inner join te muestran los registros coincidentes de ambas tablas, porque hay articulos que no tienen vencimiento_lote. Por tanto tienes que hacer un left outer join, de manera que te devuelva todos los articulos, y debes de incluir, dado que existencias, supongo que es de vencimiento_lote, un where existencia is null, o en el propio on....

    https://aprendiendosqlserver.blogspot.com.es/2011/01/aprendiendo-usar-left-outer-join.html

    Este enlace es simple, pero quizá te puede ayudar.

    Un saludo

    martes, 6 de febrero de 2018 21:04
  • muchas gracias solo eso era lo que necesitaba !
    martes, 6 de febrero de 2018 21:25