select dentro de Case
Publicado por Cristi_me (1 intervención) el 29/05/2019 20:33:40
Buenas tardes, quisiera exponerles mi caso esperando puedan ayudarme.
estoy trabajando con facturas pagadas a proveedores, F para fisicos, M para morales, los cuales aplica de manera diferente, por lo que tengo dos consultas distintas para los tipos de proveedores y necesito que cuando sea F aplique una y cuando sea M aplique la que le corresponda, utilice el decode, pero no pude lograr que me funcionara, ahora intente con el CASE pero me marca el error ORA-00913: too many values.
podrian aconsejarme una opcion correcta o que estoy haciendo mal, ya busque opciones que me acepten las sentencia select con las operaciones que me permiten determinar el monto pagado al proveedor pero hasta el momento no lo he logrado.
muchas gracias de antemano.
estoy trabajando con facturas pagadas a proveedores, F para fisicos, M para morales, los cuales aplica de manera diferente, por lo que tengo dos consultas distintas para los tipos de proveedores y necesito que cuando sea F aplique una y cuando sea M aplique la que le corresponda, utilice el decode, pero no pude lograr que me funcionara, ahora intente con el CASE pero me marca el error ORA-00913: too many values.
podrian aconsejarme una opcion correcta o que estoy haciendo mal, ya busque opciones que me acepten las sentencia select con las operaciones que me permiten determinar el monto pagado al proveedor pero hasta el momento no lo he logrado.
muchas gracias de antemano.
1
2
3
4
5
6
7
8
9
(select pv.persona,
CASE
WHEN pv.persona = 'F'
THEN (select sum(ROUND(((dt.montofact * df.iva/100)+ dt.montofact)-((dt.montofact/100)* df.retenido1)-((dt.montofact) * (df.retenido/100)),2))from detfacturas df where df.factura = vf.factura)
WHEN pv.persona = 'M'
THEN (select sum(ROUND(((dt.montofact * df.iva/100)+ dt.montofact),2))from detfacturas df where df.factura = vf.factura)
ELSE 'No es Proveedor'
END
from proveedores pv where pv.proveedor = vf.proveedor) as monto_pagado
Valora esta pregunta


0