SELECT Det.IDarticulo, Det.Cantidad, Det.Precio, IF(<primer registro
detalle>;(SELECT Descuento FROM Encabezado Cab WHERE Det.Factura =
Cab.Factura);0) as "Descuento"FROM Detalle Det
Deberías obtener de tu detalle cual es el primer registro y usarlo en la
comparación, de esa manera el monto del encabezado lo busca solo para ese
registro y en los otros te pone cero.Saludos: Miguel, Santa Rosa, La Pampa
El Sábado, 15 de abril, 2017 15:33:04, Nicolas Arnaldo
<[email protected]> escribió:
Buenas tardes grupo, tengo un problema que no se como resolver en SQL.
Tengo dos tablas, maestro y detalles. En una sentencia SQL (sql server)
necesito devolver todos los items, y tambien traer en un registro un valor del
encabezado, sin que ese valor se repita.
Es decir, EJ.
Factura Articulo_Detalle Cantidad_Detalle Precio_Detalle
Descuento_Encabezado00015 C45 10
$150.50 $2000015 C50 15
$220.75 $0 00015 C75 5
$750.15 $0
Si hago SELECT Det.IDarticulo, Det.Cantidad, Det.Precio, Cab.DescuentoFROM
Detalle INNER JOIN Encabezado ON Det.Factura = Cab.Factura
el descuento del encabezado se repite en todos los items, estoy tratando de
usar DISTINCT pero no logro llegar al resultado deseado. El importe de
descuento lo deberia poner en cualquier item, no importa cual, simplemente con
que figure el importe del encabezado una sola vez es suficiente.
Muchas gracias de antemano.