none
Problemas con un update RRS feed

  • Pregunta

  • Hola

    Tengo la siguiente consulta

    SELECT Entradas.Conduce, Entradas.[Codigo Del Producto], Entradas.[Cantidad Total], Entradas.[Precio Total], Entradas.[Precio Por Unidad], Entradas.Fecha, Productos.Cantidad, [Cantidad Total]+[Cantidad] AS Total
    FROM Productos INNER JOIN Entradas ON Productos.Codigo = Entradas.[Codigo Del Producto];

    Hasta aqui todo perfecto.

    Pero luego de que sume Cantidad Total + Cantidad en el campp Total quiero que modifique el valor del campo Cantidad, osea lo sustituya con el valor del campo Total.

    Lo intento con esto pero no funciona.

    (UPDATE Productos, Entradas
    SET Productos.Cantidad = Total);

    alguien sabe como puedo hacer el update luego de la consulta de arriba en la misma consulta.

    Gracias

    Access 2010 En Vista SQL

    viernes, 18 de marzo de 2011 4:50

Respuestas

  • hola

    pero esto lo haces en dos operaciones desde tu codigo ? o es todos en una misma query, quizas usnado un stored procedure

    si lo ahces desde codigo recuerda que deberias enviar un parametro

    UPDATE Productos SET Cantidad = @total

    y desded tu codigo lo usarias

    Using cn As New SqlConnection("connection string")
        cn.Open()
       
        Dim query As String = "UPDATE Productos SET Cantidad = @total"
        Dim cmd As New SqlCommand(query, cn)
        cmd.Parameters.AddWithValue("@total", valor)
       
        cmd.ExecuteNonQuery()

    End Using

    Nota: el "valor" seria la cantidad que quieres actualizar y que has recuperado de la primer consulta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Ovegeton martes, 22 de marzo de 2011 19:19
    viernes, 18 de marzo de 2011 12:18

Todas las respuestas

  • hola

    pero esto lo haces en dos operaciones desde tu codigo ? o es todos en una misma query, quizas usnado un stored procedure

    si lo ahces desde codigo recuerda que deberias enviar un parametro

    UPDATE Productos SET Cantidad = @total

    y desded tu codigo lo usarias

    Using cn As New SqlConnection("connection string")
        cn.Open()
       
        Dim query As String = "UPDATE Productos SET Cantidad = @total"
        Dim cmd As New SqlCommand(query, cn)
        cmd.Parameters.AddWithValue("@total", valor)
       
        cmd.ExecuteNonQuery()

    End Using

    Nota: el "valor" seria la cantidad que quieres actualizar y que has recuperado de la primer consulta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Ovegeton martes, 22 de marzo de 2011 19:19
    viernes, 18 de marzo de 2011 12:18
  • "Ovegeton" preguntó:

    > alguien sabe como puedo hacer el update luego de la consulta
    > de arriba en la misma consulta.
    >
    > Access 2010 En Vista SQL

    Hola:

    ¿Te refieres a ejecutar en una única consulta SQL, primero la consulta de combinación (INNER JOIN), y acto seguido la consulta de actualización (UPDATE), y todo ello desde la propia interfaz de usuario de Microsoft Access 2010? Que yo sepa, Microsoft Access no permite ejecutar múltiples consultas SQL, sean de actualización, inserción, eliminación, o simplemente de selección. Si fuera una base de Microsoft SQL Server, otro gallo cantaría.

    Como lo que pretendes hacer es actualizar el campo Cantidad de la tabla Productos, con la suma de los valores de ésta columna más el valor del campo [Cantidad Total] de la tabla Entradas, la consulta SQL de actualización que tendrías que ejecutar sería la siguiente:

       UPDATE Productos INNER JOIN Entradas
       ON Productos.Codigo = Entradas.[Codigo Del Producto]
       SET Productos.Cantidad = Productos.Cantidad + Entradas.[Cantidad Total];

    Como en las consulta SQL que has indicado no observo ninguna cláusula WHERE, entiendo que deseas actualizar TODOS LOS REGISTROS DE LA TABLA PRODUCTOS, con lo cual, cada registro de dicha tabla se actualizará de acuerdo a los valores de los campos comunes que han servido para relacionar ambas tablas: el campo Codigo para la tabla Productos y el campo [Codigo Del Producto] para la tabla Entradas. Si no existen campos comunes en las dos tablas, obviamente no se actualizará el registro correspondiente de la tabla Productos.

    Asimismo, te hago la salvedad que si algún valor de los campos que deseas sumar es NULL, esos campos no se sumarán, porque los valores NULL no se pueden sumar; el resultado será NULL.

    NOTA: si aceptas un consejo, acostúmbrate a no dejar espacios en blanco en los nombres de los campos y de las tablas de la base de datos. Te puedes ahorrar más de un dolor de cabeza. :-)

    Un saludo

     


    Enrique Martínez
      [MS MVP - V

    viernes, 18 de marzo de 2011 12:24