Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/04/2010, 06:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Mostrar una consulta en varios campos. Ayuda

El error está dado por el DBMS que estás usando.
Motores como Oracle, SQL Server, DB2, etc., exigen que todos los campos declarados en el SELECT y que no estén siendo usados con funciones agregadas, deben estar forzosamente en el GROUP BY.
En tu caso:

Código SQL:
Ver original
  1. SELECT
  2.     O.nom_curso,
  3.     O.nom_cliente,
  4.     O.codigo,
  5.     O.provincia_curso,
  6.     O.fecha_inicio_curso,
  7.     O.fecha_fin_curso,
  8.     G.tipo,
  9.     G.concepto,
  10.     G.fecha,
  11.     SUM(G.cantidad) AS SumaDecantidad
  12. FROM Ofertas_Cursos O
  13.     LEFT JOIN gastos_curso G ON O.codigo = G.codigo
  14. GROUP BY G.tipo;

Como puedes apreciar, estas poniendo sólo el tipo de gasto, cuando en realidad debería ir:
Código SQL:
Ver original
  1. SELECT
  2.     O.nom_curso,
  3.     O.nom_cliente,
  4.     O.codigo,
  5.     O.provincia_curso,
  6.     O.fecha_inicio_curso,
  7.     O.fecha_fin_curso,
  8.     G.tipo,
  9.     G.concepto,
  10.     G.fecha,
  11.     SUM(G.cantidad) AS SumaDecantidad
  12. FROM Ofertas_Cursos O
  13.     LEFT JOIN gastos_curso G ON O.codigo = G.codigo
  14. GROUP BY
  15.     G.tipo, O.nom_curso,  O.nom_cliente,  
  16.     O.codigo, O.provincia_curso, O.fecha_inicio_curso,
  17.     O.fecha_fin_curso,  G.concepto, G.fecha;
La sentencia, tal como la planteas, es válida en MySQL, SQLite, y no sé si en Postgre, pero no en los otros mencionados.

No son errores precisamente, sino es la forma que los DBMS implementan SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)