none
problema con subconsulta RRS feed

  • Pregunta

  • buenas noches gente del foro....tengo un problema con una consulta de sql las tablas que tengo son:

    detalle_inventario con las columnas: ubicación, medicamento, lote, vto, cantidadContada, diferencia, inventario.

    stock con las columnas: id, ubicación, medicamento, lote, vto, cantidad.

    La consulta que necesito es que seleccione todos los datos de detalle_inventario donde la columna inventario=@inventario (este dato lo doy yo) y que a la columna diferencia la calcule con cantidadContada-cantidad(de la tabla Stock), pero esa cantidad de la tabla Stock la tengo que obtener a partir de un select a la tabla stock con la ubicación que obtengo de la primer consulta a la tabla detalle_inventario....no se si m explico no tengo muy en claro SQL....desde ya muchas grax

    martes, 19 de septiembre de 2017 0:46

Respuestas

  • De acuerdo, entonces actualiza la expresión de igualdad y cambia la consulta a una de selección:

    SELECT (di.cantidadContada - s.cantidad) AS Diferencia, di.*    
    FROM
        detalle_inventario di
        INNER JOIN Stock s ON di.ubicacion = s.ubicacion
    WHERE di.existencia = @existencia;
    GO


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 19 de septiembre de 2017 20:13

Todas las respuestas

  • ¿Te basta comparar sólo por la columna 'ubicacion'? ¿no deberías reforzar la comparación por las columnas 'medicamento' y 'lote'?

    UPDATE di
    SET 
        di.diferencia = di.cantidadContada - s.cantidad
    
    FROM
        detalle_inventario di
        INNER JOIN Stock s ON di.ubicacion = s.ubicacion AND di.medicamento = s.medicamento
    		  AND di.lote = s.lote
    WHERE di.existencia = @existencia;
    GO


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 19 de septiembre de 2017 5:22
  • si es solamente con ubicación....es un select no un update...muchas gracias
    martes, 19 de septiembre de 2017 20:02
  • De acuerdo, entonces actualiza la expresión de igualdad y cambia la consulta a una de selección:

    SELECT (di.cantidadContada - s.cantidad) AS Diferencia, di.*    
    FROM
        detalle_inventario di
        INNER JOIN Stock s ON di.ubicacion = s.ubicacion
    WHERE di.existencia = @existencia;
    GO


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 19 de septiembre de 2017 20:13