08/01/2004, 19:33
|
| | | Fecha de Ingreso: diciembre-2003 Ubicación: Nuevo Laredo, Tamaulipas
Mensajes: 32
Antigüedad: 21 años Puntos: 0 | |
Gracias por tu interes...ok, de momento no tengo un ejemplo real pero vamos a inventar uno sencillo que tal vez no tenga sentido pero es para que se comprenda esto.
Sopongamos que se tiene una tabla de ALUMNOS y una tabla de CUOTAS; la tabla de alumnos contiene -entre otros campos- la cantidad de beca de cada alumno, y la tabla de cuotas contiene -entre otros campos- las diferentes cantidades que se pueden pagar como cuota de beca.
Podria ser algo asi:
ALUMNOS
---------------
Jose | 600.00 | 2000
Juan | 340.00 | 2001
Raul | 500.00 | 1999
Beto | 650.00 |2002
(Nombre | Beca | año de ingreso)
CUOTAS
------------
Beca | 300.00
Otros | 400.00
Otros |500.00
Beca | 600.00
Beca | 700.00
(Concepto | Cantidad)
Ok con esta informacion supongamos que tuvieras la necesidad de actualizar la beca de aquellos alumnos cuyo año de ingreso a esta escuela sea del 2001 en adelante, ya que ahora van a tener la cantidad de la cuota mayor de la tabla de cuotas con el concepto de Beca.
Esto se haria asi:
UPDATE ALUMNOS SET BECA=(SELECT MAX(CANTIDAD) FROM CUOTAS WHERE CONCEPTO='Beca')
WHERE INGRESO>=2001
Aqui lo que hace el subselect (el que esta entre parentesis) es traer la cantidad mayor del concepto 'Beca' en la tabla CUOTAS, que es 700.00 segun nuestra tabla de ejemplo; y ese valor lo va a grabar en el campo BECA de la tabla ALUMNOS afectando solo aquellos registros cuyo año de ingreso sea mayor o igual a 2001; por lo que despues de ejecutar esta sentencia nos quedaria asi:
ALUMNOS
---------------
Jose | 600.00 | 2000
Juan | 700.00 | 2001
Raul | 500.00 | 1999
Beto | 700.00 |2002
(Nombre | Beca | año de ingreso)
Es decir, los registros "afectados" se refieren a los registros que se quieren actualizar, ya que si no lo indicas en la clausula where entonces se actualizarian todos los registros de la tabla.
Bueno espero no haberlos revuelto con mi explicacion, ya que creo que me extendi mucho.
__________________ No hagas a los demas lo que no quieras que te hagan. |