must appear in the GROUP BY

must appear in the GROUP BY

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?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rafaelma

Re: must appear in the GROUP BY

El 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.

CREATE VIEW v5 AS 
SELECT ((f_salida)-(f_llegada))*(SELECT sum(costo) FROM v4) 
AS "importe_hab" 
FROM v4

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

Hola 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

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><h2><pre>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

Image CAPTCHA
Enter the characters shown in the image.