none
ayuda por favor RRS feed

  • Pregunta

  • UPDATE Facturacion_Ventas SET Facturacion_Ventas.estadoFactura ='CANCELADO'
    FROM Facturacion_Ventas JOIN Abonos
    ON Facturacion_Ventas.N_Facturacion = Abonos.numeroFactura
    HAVING sum (Abonos.valorAbono) = 0

    como puedo ejecutar este update gracias

    jueves, 21 de febrero de 2019 22:28

Todas las respuestas

  • Hola barnot:

    Una opción sencilla es utilizar una subconsulta correlativa.

    CREATE TABLE FACTURACION_VENTAS
    (N_FACTURACION INT, 
     ESTADOFACTURA VARCHAR(100), 
     TOTAL         FLOAT
    );
    GO
    CREATE TABLE ABONOS
    (NUMEROFACTURA INT, 
     LINEA         INT, 
     VALORABONO    FLOAT
    );
    GO
    INSERT INTO FACTURACION_VENTAS
    (N_FACTURACION, 
     ESTADOFACTURA, 
     TOTAL
    )
    VALUES
    (1, 
     'OTRO', 
     100
    );
    INSERT INTO ABONOS
    (NUMEROFACTURA, 
     LINEA, 
     VALORABONO
    )
    VALUES
    (1, 
     1, 
     -50
    );
    GO
    /* Con el escenario preparado. Una tabla Facturacion_Ventas una tabla Abonos, una factura por 100, una insercción de abonos por -50 */

    Procedemos a ejecutar la update

    UPDATE V
      SET 
          V.estadoFactura = 'CANCELADO'
    FROM Facturacion_Ventas AS V
         JOIN Abonos A ON V.N_Facturacion = A.numeroFactura
    WHERE
    (
        SELECT SUM(VALORABONO)
        FROM ABONOS B
        WHERE B.NUMEROFACTURA = A.NUMEROFACTURA
    ) = 0;
    GO
    /* Resultado 0 filas actualizadas porque la suma no da 0 */
    

    Insertamos un nuevo valor en abonos para que de 0.

    INSERT INTO ABONOS
    (NUMEROFACTURA, 
     LINEA, 
     VALORABONO
    )
    VALUES
    (1, 
     2, 
     50
    );
    GO
    /* Ejecutamos de nuevo la update */
    UPDATE V
      SET 
          V.estadoFactura = 'CANCELADO'
    FROM Facturacion_Ventas AS V
         JOIN Abonos A ON V.N_Facturacion = A.numeroFactura
    WHERE
    (
        SELECT SUM(VALORABONO)
        FROM ABONOS B
        WHERE B.NUMEROFACTURA = V.N_FACTURACION
    ) = 0;
    

    Salida


    • Propuesto como respuesta Pedro Alfaro viernes, 22 de febrero de 2019 0:00
    jueves, 21 de febrero de 2019 22:48
  • amigo eres un crack !!!! gracias mi hermano bendiciones-

    viernes, 22 de febrero de 2019 13:30
  • De nada.
    viernes, 22 de febrero de 2019 13:53