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

Sumar 20 a cada campo

Estas en el tema de Sumar 20 a cada campo en el foro de Bases de Datos General en Foros del Web. Hola a todos. A ver. Tengo que diseñar una base de datos donde existen 20 campos llamados A, B, C, D....hasta la letra 20 del ...
  #1 (permalink)  
Antiguo 09/03/2008, 13:22
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Sumar 20 a cada campo

Hola a todos. A ver. Tengo que diseñar una base de datos donde existen 20 campos llamados A, B, C, D....hasta la letra 20 del alfabeto. Cada campo es el anterior más 20 de tal modo que tenemos que:

El campo B será el valor de A + 20; el C = B+ 20... y así sucesivamente. El campo A será introducido manualmente. Esta suma no puede pasar del 360, de tal modo que si en un campo tenemos esto:

campo G = 358
El siguiente campo sería H = G+ 20 = 358 + 20 --- Como la suma da más de 360, tendríamos: hasta 360 hay 2, y luego sería sumar 18, con lo cual, el valor de H sería H = 18;

Como podría hacer esto? Por favor necesito vuestra ayuda

Gracias por todo
  #2 (permalink)  
Antiguo 09/03/2008, 14:16
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Re: Sumar 20 a cada campo

Hola,

Para esto necesitaras indicar con que base de datos estas trabajando, te dejo un ejemplo

Código:
SQL> select * from t1;

      DATA
----------
       100
       358

SQL> select case when (data + 20) < 360 then (data + 20)
  2              when (data + 20) > 360 then (data + 20) - 360
  3         end
  4  from t1
  5  /

CASEWHEN(DATA+20)<360THEN(DATA+20)WHEN(DATA+20)>360THEN(DATA+20)-360END
-----------------------------------------------------------------------
                                                                    120
                                                                     18
Lo que me deja pensando si es necesario tener 20 campos para almacenar un valor calculado, ya que teniendo el primero (el que se inserta en forma manual) mas la posicion de la letra (1 a 20), lo puedes calcular en el momento.

Por ejemplo, para le cuarta letra, la D

Código:
SQL> select case when data + 20*4 < 360 then data + 20*4
  2              when data + 20*4 > 360 then data + 20*4 - 360
  3         end
  4  from t1

CASEWHENDATA+20*4<360THENDATA+20*4WHENDATA+20*4>360THENDATA+20*4-360END
-----------------------------------------------------------------------
                                                                    180
                                                                     78
Saludos

Última edición por matanga; 09/03/2008 a las 14:25 Razón: Falto segundo ejemplo
  #3 (permalink)  
Antiguo 10/03/2008, 00:09
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Re: Sumar 20 a cada campo

Como sugerencia, quedaría más simple y corta la consulta si en lugar de usar case when usas el operador modulo. Los valores a insertar / actualizar serían:
Código:
A, (A + 20) % 360 AS B, (A + 40) % 360 AS C, (A + 60) % 360 AS D, ... , (A + 320) % 360 AS Q, (A + 340) % 360 AS R
Cómo que no tiene sentido tener más de 18 columnas si los valores no pueden pasar de 360...
  #4 (permalink)  
Antiguo 10/03/2008, 01:20
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Sumar 20 a cada campo

ante todo, gracias a los dos. Mi pregunta ahora: y si la base de datos fuera access?
  #5 (permalink)  
Antiguo 10/03/2008, 02:23
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Sumar 20 a cada campo

Yo tengo una pregunta, si todos los datos menos 'A' son calculados, porque los almacenas?
  #6 (permalink)  
Antiguo 10/03/2008, 02:51
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Sumar 20 a cada campo

para seyko:

pues porque forman parte de una ficha donde es necesario mostrar esos campos y almacenar sus valores, de tal modo que cada registro consta de estos campos además de otros.

y si fuera para access?
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 18:06.