Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Campos Calculados

Estas en el tema de Campos Calculados en el foro de Bases de Datos General en Foros del Web. Tengo un Campo Calculado (=[Cantidad]*[Valor]), aunq parezca inutil, necesito q el resultado de ese campo calculado se almacene en el campo "total", de una tabla ...
  #1 (permalink)  
Antiguo 08/01/2004, 10:37
 
Fecha de Ingreso: enero-2004
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
Busqueda Campos Calculados

Tengo un Campo Calculado (=[Cantidad]*[Valor]), aunq parezca inutil, necesito q el resultado de ese campo calculado se almacene en el campo "total", de una tabla llamada "Articulos"... Como puedo hacerlo??... (todo en ACCESS 2000)
  #2 (permalink)  
Antiguo 08/01/2004, 11:26
Avatar de fearlex  
Fecha de Ingreso: septiembre-2003
Ubicación: Exiliado de mi patria
Mensajes: 1.047
Antigüedad: 20 años, 7 meses
Puntos: 5
bueno agregas a esa consulta(es una consulta donde estas realizando eso, no???) la tabla donde esta el campo "total" o sea la tabla "Articulos" y le agregas ese campo y realizas esa expresion en ese campo en la parte donde dice criterio, por supuesto...

Ojala te ayude esto..
__________________
Ya viene llegando, el comunismo en Cuba, ya se esta acabando.
www.fearlex.com | www.fearlexworld.com
  #3 (permalink)  
Antiguo 08/01/2004, 12:42
Avatar de hpvalle  
Fecha de Ingreso: diciembre-2003
Ubicación: Nuevo Laredo, Tamaulipas
Mensajes: 32
Antigüedad: 20 años, 4 meses
Puntos: 0
Tambien podrias usar:

update articulos set total=(select cantidad*valor from tabla [y luego las demas clausulas del select original donde obtienes el campo calculado])
[y afuera del parentesis van las clausulas que indiquen a que registros de la tabla original donde tienes el campo total se van a afectar]
__________________
No hagas a los demas lo que no quieras que te hagan.
  #4 (permalink)  
Antiguo 08/01/2004, 13:51
Avatar de fearlex  
Fecha de Ingreso: septiembre-2003
Ubicación: Exiliado de mi patria
Mensajes: 1.047
Antigüedad: 20 años, 7 meses
Puntos: 5
Hola:
hp Valle me interesa eso que le explicas o sea comopuedo especificar que registros se van a afectar, o mejor escribe la senetencia completa como ejemplo de las clusulas que podrian ir...........plis
__________________
Ya viene llegando, el comunismo en Cuba, ya se esta acabando.
www.fearlex.com | www.fearlexworld.com
  #5 (permalink)  
Antiguo 08/01/2004, 19:33
Avatar de hpvalle  
Fecha de Ingreso: diciembre-2003
Ubicación: Nuevo Laredo, Tamaulipas
Mensajes: 32
Antigüedad: 20 años, 4 meses
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.
  #6 (permalink)  
Antiguo 09/01/2004, 09:23
Avatar de fearlex  
Fecha de Ingreso: septiembre-2003
Ubicación: Exiliado de mi patria
Mensajes: 1.047
Antigüedad: 20 años, 7 meses
Puntos: 5
Hola:
Si entendi perfectamente la explicacion, me ha sido de mucha ayuda, gracias si hay algo en lo que te pudiera ayudar no dudes en acudir a mi...

Pero tengo una duda mas imperiosa, y creo que tu eres la persona indicada para respondermela , pero creo que es demasiado larga para ponerla aquipor que no se como explicarla sin ensenar ejemplos, crees que te pudiera enviar mi base de datos y la explicacion....... Por Favor, me urge mucho salir de este enredo...

gracias desde ya
__________________
Ya viene llegando, el comunismo en Cuba, ya se esta acabando.
www.fearlex.com | www.fearlexworld.com
  #7 (permalink)  
Antiguo 09/01/2004, 19:56
Avatar de hpvalle  
Fecha de Ingreso: diciembre-2003
Ubicación: Nuevo Laredo, Tamaulipas
Mensajes: 32
Antigüedad: 20 años, 4 meses
Puntos: 0
Bueno no se con que base de datos estes trabajando, pero por mi parte en lo que pueda ayudarte con gusto.

Ahi me avisas.
__________________
No hagas a los demas lo que no quieras que te hagan.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.