Buen día foro.
Estoy usando Firebird 2.5
Les traigo una consulta sobre un SQL, a ver si se puede resolver sin programar.
Una tabla con 4 campos,
"tipo",
"Total",
"uno",
"dos"
Necesito dos campos
"calculados" uno que sea el
3% del total y otro el
5% del
total, pero el
3% solo en aquellos casos que el campo
"UNO" sea
mayor a cero y el
5% solo en aquellos que el campo
"DOS" sea mayor a cero.
El resultado que necesito obtener es el siguiente:
TIPO_TOTAL_UNO___DOS__TRES_CINCO
1____100____21_____0____3_____0
1____200_____0____52____0____10
1____300____63____79____9____15
1____400____00_____0____0_____0
2____100____21_____0____3_____0
2____200_____0____52____0____10
3____300____63____79____9____15
3____400_____0_____0____0_____0
Si quieren probar adjunto los scrips para crear y completar las tablas y mi consulta que
NO funciona.
Desde ya muchas gracias por su atención.
create Table prueba20210813 (
Tipo integer,
Total Numeric (15,2) Not null,
Uno Numeric (15,2) Not null,
Dos Numeric (15,2) Not null);
Insert into prueba20210813 values (1, 100,21 ,0);
Insert into prueba20210813 values (1, 200,0 ,52);
Insert into prueba20210813 values (1, 300,63 ,79);
Insert into prueba20210813 values (1, 400,0 ,0);
Insert into prueba20210813 values (2, 100,21 ,0);
Insert into prueba20210813 values (2, 200,0 ,52);
Insert into prueba20210813 values (3, 300,63 ,79);
Insert into prueba20210813 values (3, 400,0 ,0);
Select tipo, Total, uno,dos , total * 0.03 as tres, total *0.05 as cinco
from prueba20210813