Skip site navigation (1) Skip section navigation (2)

Ayuda con consulta

From: Luis <esteban(at)princesa(dot)pri(dot)sld(dot)cu>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda con consulta
Date: 2011-06-23 12:39:32
Message-ID: op.vxi34hhmtyhnfo@jerusalen (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
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

-- 
Saludos,

Luis

--

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/

Responses

pgsql-es-ayuda by date

Next:From: Marcelo RobinDate: 2011-06-23 13:12:10
Subject: PUEDEN DARME UNA MANO CON NPGSQL ?
Previous:From: Mariano ReingartDate: 2011-06-22 22:20:03
Subject: Re: restaurar backup en ubuntu 11.04

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group