Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Problema con Subconsulta...

Estas en el tema de Problema con Subconsulta... en el foro de PostgreSQL en Foros del Web. Hola a todos tengo un problemilla que me ha dado dolor de cabeza toda la mañana tratando de implementarlo espero me puedan dar alguna recomendacion ...
  #1 (permalink)  
Antiguo 08/05/2012, 10:43
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 12
Problema con Subconsulta...

Hola a todos tengo un problemilla que me ha dado dolor de cabeza toda la mañana tratando de implementarlo espero me puedan dar alguna recomendacion
Tengo la siguiente consulta:

Código:
SELECT 
	pro.name,
	ord.c_project_id,
	SUM( ord.grandtotal ) AS valor_ventas,
	COUNT ( ord.c_order_id ) AS total_ordenes, 
	
	/* ***** VALOR RECIBIDO  ****** */
	(SELECT ROUND(SUM(pay.payamt),2)
	 FROM c_payment pay
	 WHERE pay.datetrx BETWEEN '2008-01-01' AND '2010-06-30'
	 AND pay.c_order_id = ord.c_order_id	 
	 GROUP BY pay.c_order_id 
	) AS valor_recibido
	/* ************* */	
	
FROM c_order ord
LEFT JOIN c_project pro ON ( ord.c_project_id = pro.c_project_id )
LEFT JOIN c_projecttype prot ON (pro.c_projecttype_id = prot.c_projecttype_id) 
WHERE ord.created BETWEEN '2010-06-01' AND '2010-06-30'
--AND ord.c_project_id = 1000068
AND ord.issotrx = 'Y' -- ordenes de venta (N: compra)
AND ord.isactive = 'Y' -- ordenes activas
AND ord.docstatus IN ('CO') -- ordenes completas
AND prot.c_projecttype_id IN (1000000, 1000002, 1000003, 1000005, 1000006, 1000007) -- SELECT * FROM c_projecttype
GROUP BY ord.c_project_id, pro.name
ORDER BY ord.c_project_id
El error que me sale es el siguiente

Cita:

ERROR: la subconsulta usa la columna «ord.c_order_id» no agrupada de una consulta exterior
LINE 44: AND pay.c_order_id = ord.c_order_id
^

********** Error **********

ERROR: la subconsulta usa la columna «ord.c_order_id» no agrupada de una consulta exterior
SQL state: 42803
Character: 1908
Resulta que la tabla c_project tiene N ordenes de compra y a su vez las ordenes de compra ( c_order ) tienen N pagos (c_payment) necesito mostrar en la consulta algo como

Cita:
Proyecto | Num ordenes | Num Pagos

Project 1 | 5 | 10
De alguna forma entiendo el porque del error, pero estoy atascado en saber como contar los pagos de cada orden de compra para cada proyecto, y no, no puedo agrupar por orden de compra ya que debe estar pro proyecto.
A simple vista parece sencillo pero no se que me estoy perdiendo.

Cualquier recomendación sera bienvenida.
Saludos

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:34.