tengo problemas con lo siguiente:
hotel;=# create view v5
hotel;-# as select ((f_salida)-(f_llegada))*(sum(costo))as "importe_hab" from v4
;
ERROR: column "v4.f_salida" must appear in the GROUP BY clause or be used in an
aggregate function
tanto f,salida/entrada(date) y costo(money) estan dentro de v4(view) al tomar los valores de salida/entrada la resta devuelve 2(hasta ahi no hay problema), pero cuando quiero multiplicar por el costo aparece esè error ¿alguien sabe cuàl es el problema?
Re: must appear in the GROUP BY
Vie, 25/09/2009 - 23:17 — rafaelmaEl problema es el uso de la función agregada sum() junto con los otros dos atributos sin el uso de group by.
¿Qué es lo que quieres hacer?, ¿multiplicar el valor obtenido de (f_salida)-(f_llegada) per tupla por la suma total de costos de todas las tuplas?
Si es esto lo que quieres hacer, lo puedes hacer con un sub-select.
Pero me da la impresión que lo que quieres hacer es multiplicar el costo de un día por el número de dias, y eso no lo consigues con sum(). ¿Cual es la definición de la tabla v4 y qué quieres hacer?
--
Rafael Martinez
Webmaster
Ayuda con Consulta en Postgres
Vie, 27/11/2009 - 21:42 — AnónimoHola amigos la preguna es la siguiente :
Por qu'e cada vez que uso una función agregada me agrupa por todos los campos obligatriamente.
ejemplo :
Una fabrica que fabrica que brinda los resultados por mes y año y yo quiero obtener el ultimo registro. O sea el ultimo MES y AñO.
fabrica mes Año Cantidad
A 01 2009 4
A 05 2009 2
B 09 2010 9
Debe de obtener :
A 05 2009 2
B 09 2010 9
Ese es el problema de la consulta pues me da error. Me dice que cantidad debe de estar dentro del group by.
Salu2 y espero ayuda. gracias !!!
Enviar nuevo comentario