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 
<arnaldonico...@gmail.com> 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. 

   

Responder a