Lo que no veo por qué no los almacenas en la tabla,
¿probaste si hay detrimento del rendimiento?
No optimices de forma prematura, prueba y leugo optimiza.
El 6/23/2011 8:39 AM, Luis escribió:
Hola,
Necesito una mano de los colegas con esta consulta.
Tengo estas dos tablas:
mani=# select * from productos;
id_pro | descripcion
--------+-----------------------
1 | maní
2 | papel
3 | sal
4 | azúcar
5 | pasaje y alimentación
(5 filas)
mani=# select * from ventas;
id_ven | fecha | cantidad_mani | id_inv
--------+------------+---------------+--------
1 | 2011-06-22 | 6.0 | 1
(1 fila)
y necesito obtener los siguientes datos.
fecha | cantidad_mani | ventas_estimadas(cantidad_mani*30) |
inversión(cantidad_mani*15) | ganancia(ventas_estimadas - inversión)
Estaba probando así, y todo bien
mani=# select fecha, cantidad_mani, cantidad_mani*30 as
ventas_estimadas, cantidad_mani*(select precio from
inversion_productos where id_pro=1) as inversion from ventas;
fecha | cantidad_mani | ventas_estimadas | inversion
------------+---------------+------------------+-----------
2011-06-22 | 6.0 | 180.0 | 96.000
(1 fila)
pero cuando trato de calcular la ganancia,
mani=# select fecha, cantidad_mani, cantidad_mani*30 as
ventas_estimadas, cantidad_mani*(select precio from
inversion_productos where id_pro=1) as inversion,
ventas_estimadas-inversion as ganancia from ventas;
ERROR: no existe la columna «ventas_estimadas»
LÍNEA 1: ...inversion_productos where id_pro=1) as inversion,
ventas_est...
como ventas_estimadas e inversion no son campos de la tabla no puedo
usarlos en el cálculo. Qué pues me sugieren?
Inicialmente introducía todos los datos a la tabla pero consideré que
era mejor guardar solo algunos y los demás calcularlos a partir de
estos. Es elegante esto o es mejor guardarlos todos para ganar en
velocidad a coste del tamaño de la db?
Desde ya, muchas gracias
--
Marcos Luís Ortíz Valmaseda
Software Engineer (UCI)
http://marcosluis2186.posterous.com
http://twitter.com/marcosluis2186
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda