SQL - update en forms

 
Vista:

update en forms

Publicado por fer (1 intervención) el 25/09/2012 18:04:20
buenas tardes tengo dos tablas una de esas tablas es el detalle de la otra, en el detalle hay un campo que no esta en la tabla porque es el que suma el total de uno d los campos de la tabla, pero ese total debe actualizarse en otro campo de la otra tabla. tengo que hacer un update pero no se donde colocarlo, estoy trabajando en forms developer
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

update en forms

Publicado por leonardo_josue (1173 intervenciones) el 25/09/2012 19:07:40
Hola Fer...

Aclaremos una cosa, en realidad en tu post no estás mencionando ninguna problemática, es decir mencionas qué es lo que quieres hacer, pero no nos dices qué problema o error está ocurriendo... supongo que intentaste hacer alguna sentencia update, sin embargo no colocas nada en tu post. si tienes algún error de bd (es decir que el DBMS te esté arrojando un error) entonces debes poner el código del error y la descripción del mismo. Si es un error lógico (es decir que se ejecuta la sentencia pero no obtienes los resultados esperados) entonces debes decirnos cuál es la estructura de tus tablas, poner algunos datos de ejemplo y a partir de estos datos, entonces decirnos qué es lo que estás esperando como salida.

Entre más detalles puedas proporcionar acerca del escenario con el que estás trabajando, más factible será que alguno de los foristas te pueda ayudar.

Sin embargo, algo en la descripción del problema me está generando un poco de inquietud:

1
2
hay un campo que no esta en la tabla porque es el que suma el total de uno d los
campos de la tabla


Si en realidad un campo PUEDE SER CALCULADO, es decir, que es el resultado de alguna operación matemática o de un proceso especial ENTONCES NO DEBE SER INCLUIDO EN LA TABLA... esto es un error de diseño terrible. Hay un ejemplo que utilizo frecuentemente para hacer notar este error, imagina que te pido que tengas una tabla CIRCULOS y que necesito almacenar todas sus características geométricas... podrías pensar en hacer una tabla que tuviera los campos:

1
2
3
4
5
6
7
8
9
10
11
mysql> SELECT * FROM circulos;
+-------+-----------+----------+------------+------------+
| radio | pi        | diametro | perimetro  | area       |
+-------+-----------+----------+------------+------------+
|     1 | 3.1415927 |        2 |  6.2831854 |  3.1415927 |
|     2 | 3.1415927 |        4 | 12.5663708 | 12.5663708 |
|     3 | 3.1415927 |        6 | 18.8495562 | 28.2743343 |
|     4 | 3.1415927 |        8 | 25.1327416 | 50.2654832 |
|     5 | 3.1415927 |       10 |  31.415927 | 78.5398175 |
+-------+-----------+----------+------------+------------+
5 rows in set (0.00 sec)



Sin embargo, el campo PI no debe existir, pues es un valor CONSTANTE, y los campos diametro, perímetro y área TAMPOCO DEBEN EXISTIR, pues se pueden calcular mediante fórmulas matemáricas...

1
2
3
diametro = 2 * radio
perímetro = pi * 2 * radio
area = pi * radio * radio



por lo tanto, al momento de hacer el SELECT calculas los campos que necesitas y presentas la misma información:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
mysql> SELECT * FROM circulos;
+-------+
| radio |
+-------+
|     1 |
|     2 |
|     3 |
|     4 |
|     5 |
+-------+
5 rows in set (0.00 sec)
 
mysql> SELECT
    -> radio,
    -> 3.1415927 PI,
    -> 2 * radio diametro,
    -> 3.1415927 * 2 * radio perimetro,
    -> 3.1415927 * radio * radio `area`
    ->  FROM circulos;
+-------+-----------+----------+------------+------------+
| radio | PI        | diametro | perimetro  | area       |
+-------+-----------+----------+------------+------------+
|     1 | 3.1415927 |        2 |  6.2831854 |  3.1415927 |
|     2 | 3.1415927 |        4 | 12.5663708 | 12.5663708 |
|     3 | 3.1415927 |        6 | 18.8495562 | 28.2743343 |
|     4 | 3.1415927 |        8 | 25.1327416 | 50.2654832 |
|     5 | 3.1415927 |       10 |  31.415927 | 78.5398175 |
+-------+-----------+----------+------------+------------+
5 rows in set (0.00 sec)


Si fuera este el caso, te recomendaría que cambiaras tu modelo de tablas y eliminaras este campo, ya que solo te dará dolores de cabeza.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar