Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/05/2004, 10:33
Teri
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 9 meses
Puntos: 0
Si le pasas el precio de la asignatura como argumento, tendrías que pasarle tantos precios como asignaturas tenga.

Supongo que tendrás un Tabla de estudiantes, otra de asignaturas, en la que incluyes el precio de la asinatura, y otra con Alumno_Asignatura, para saber que alumnos se han matriculado en qué asignaturas..., yo añadiría otra más Descuentos, y así te evitas programar los descuentos por el número de asignaturas, sólo tendrías, el número de asignaturas y el descuento aplicado

Para calcular el precio con un procedimiento almacenado, pasa el nombre o número de empleado, lo que tengas... haces una primera select para saber el número de asignaturas en las que está matriculado, obtienes en otra select las asignaturas y el precio de cada una de ellas, y sumas, en una tercera, obtienes el descuento de la tabla descuentos, si no, tendrás que hacer un if dentro del procedimiento, y lo aplicas.


O Todo con una cojoselect


SELECT PrecioGral.ImporteaPagarTotal * Descuentos.DescuentoaAplicar as ImporteAPagar FROM
(SELECT Sum(PrecioAsignatura) ImporteaPagarTotal, Count(1) AS NumeroAsignaturas
FROM AlumnosAsinaturas AS INNER JOIN Asignaturas A ON AS.IdAsignatura = A.IdAsignatura
WHERE AS.IdEmpleado = @NumeroEmpleado) PrecioGral INNER JOIN Descuentos ON PrecioGral.NumeroAsignaturas = Descuentos.NumeroAsignaturas


Bueno... espero que te sirva de algo

Un saludo