none
Mostrar datos de dos tablas RRS feed

  • Pregunta

  • Buenos dias comunidad, tengo dos tablas una llamada VentaDetalle y otra tabla denominada Devolucion, ambas tablas tienen un atributo denominado art_Clave que proviene de una tabla llamada Articulo, necesito mostrar tanto el campo art_Clave de la tabla VentaDetalle y de la tabla Devolucion, podrian ayudarme 
    jueves, 12 de noviembre de 2015 14:42

Respuestas

Todas las respuestas

  • Hola Gspindola

    SELECT
            artv.art_Clave,
            artd.art_Clave,
    FROM
            VentaDetalle vdet 
            INNER JOIN Articulo artv ON (artv.art_Clave = vdet.art_Clave)
            LEFT JOIN Devolucion devo ON (devo.idXXXX = vdet.idXXXX)
            LEFT JOIN Articulo artd ON (artd.art_Clave = devo.art_Clave)

    Para obtener la información que requieres debes de combinar las filas coincidentes entre las tablas [VentaDetalle] y [Devolucion] con la tabla [Articulo], pero, se entiende que hay una relación entre [VentaDetalle] y [Devolucion] ¿verdad?, deje - supuesto - una columna [idXxxx] que es  la que uniría ambas tablas


    jueves, 12 de noviembre de 2015 14:56
  • No entendi muy bien esa consulta, mira tengo la siguiente :

    "SELECT tVentaDetalle.art_Clave as 'SKU', tVentaDetalle.art_Nombre as 'ARTICULO', vdet_Cantidad as 'CANTIDAD', vdet_Importe as 'IMPORTE', vdet_Total as 'TOTAL', vdet_Fecha as 'FECHA' FROM tVentaDetalle INNER JOIN tArticulo ON tVentaDetalle.art_Clave=tArticulo.art_Clave WHERE tart_Clave=@sector AND (vdet_Fecha BETWEEN @fechai AND @fechaf)" a esa consulta me hace falta agregar el art_Clave de la tabla tDevolucion y quiero que aparezcan en la misma columna de tVentaDetalle.art_Clave

    jueves, 12 de noviembre de 2015 15:43
  • SELECT tVentaDetalle.art_Clave as 'SKU', tVentaDetalle.art_Nombre as 'ARTICULO', vdet_Cantidad as 'CANTIDAD', vdet_Importe as 'IMPORTE', vdet_Total as 'TOTAL', vdet_Fecha as 'FECHA' FROM tVentaDetalle INNER JOIN tArticulo ON tVentaDetalle.art_Clave=tArticulo.art_Clave WHERE tart_Clave=@sector AND (vdet_Fecha BETWEEN @fechai AND @fechaf)"

    UNION ALL

    SELECT TDEVOLUCION.art_Clave as 'SKU', TDEVOLUCION.art_Nombre as 'ARTICULO', vdet_Cantidad as 'CANTIDAD', vdet_Importe as 'IMPORTE', vdet_Total as 'TOTAL', vdet_Fecha as 'FECHA' FROM

    TDEVOLUCION

    INNER JOIN tArticulo ON TDEVOLUCION.art_Clave=tArticulo.art_Clave WHERE tart_Clave=@sector AND (vdet_Fecha BETWEEN @fechai AND @fechaf)"


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA


    jueves, 12 de noviembre de 2015 15:45
    Moderador
  • Hola Gspindola,

    El proceso de devolución extorna una venta de manera parcial o total, pero para ello, tu modelo de datos deberá tener la relación necesaria para conocer que una determinada devolución pertenece a un documento (venta). Tu quieres mostrar el producto devuelto relacionado con la venta pero no muestras la relación entre venta y devolución, aunque, si caes en conciencia te darás cuenta que la devolución de un determinado ítem de venta mantiene el mismo producto.

    Coméntanos, las tablas  [VentaDetalle] [Devolucion] ¿no se relacionan? ¿cómo determinas una devolución a que venta afecta?


    jueves, 12 de noviembre de 2015 16:33
  • Es justamente lo que tengo mira 
     Dim queryString As String = "SELECT tVentaDetalle.art_Clave as 'SKU', tVentaDetalle.art_Nombre as 'ARTICULO', vdet_Cantidad as 'CANTIDAD', vdet_Importe as 'IMPORTE', vdet_Total as 'TOTAL', vdet_Fecha as 'FECHA' FROM tVentaDetalle INNER JOIN tArticulo ON tVentaDetalle.art_Clave=tArticulo.art_Clave WHERE tart_Clave=@sector AND (vdet_Fecha BETWEEN @fechai AND @fechaf)" & _
                "UNION ALL SELECT tDevolucion.art_Clave as 'SKU', tDevolucion.art_Nombre as 'ARTICULO', vdet_Cantidad as 'CANTIDAD', vdet_Importe as 'IMPORTE', vdet_Total as 'TOTAL', vdet_Fecha as 'FECHA' FROM tDevolucion INNER JOIN tArticulo ON tDevolucion.art_Clave=tArticulo.art_Clave WHERE tart_Clave=@sector AND (dev_Fecha BETWEEN @fechai AND @fechaf)"

    jueves, 12 de noviembre de 2015 16:34
  • y no te lo muestra?  o que es lo que quieres? si quieres una nueva columna devolución para los artículos que lo tengan, es una cosa, dos líneas una con cargos y otra con devoluciones, es un union all.. ¿Qué es lo que quieres hacer ?

    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 12 de noviembre de 2015 18:47
    Moderador