none
Insertar datos con condición RRS feed

  • Pregunta

  • Hola

    Recientemente estoy haciendo unas exportaciones de la data en una base de datos a otra table en otra base de datos en el mismo servidor. Hasta que según requerimientos del cliente llegué a una condición para exportar uno de esos datos.

    Se trata del Monto (Dinero) que está guardada en la base de datos, el monto puede estar en negativo o en positivo y el cliente quiere que si el monto es negativo el dato se guarde en una columna llamada credito y si es positivo en otra columna llamada debito. Cabe recalcar que ninguna de las dos columnas debito y credito aceptan valores NULL, por lo que me imagino hay que insertar un valor 0.00 para que deje hacer la inserción.

    A mi se me ocurre algo así:

    INSERT INTO [Base2].[dbo].[Tabla]

    SELECT monto FROM Transacciones

    IF MONTO >= 0
        THEN INSERT INTO DEBITO
            ELSE INSERT INTO CREDITO

    No soy muy experto en SQL

    lunes, 26 de febrero de 2018 21:04

Todas las respuestas

  • Puedes evaluar la condición mediante la instrucción CASE o IIF

    - Mediante CASE

    INSERT INTO dbo.TablaDestino (Col1, Col2, Debito, Credito)
    SELECT 
        o.Col1, o.Col2, CASE WHEN o.Monto >= 0 THEN Monto ELSE 0 END,
        CASE WHEN o.Monto < 0 THEN Monto ELSE 0 END
    FROM dbo.TablaOrigen o
    GO

    lunes, 26 de febrero de 2018 21:14