|    
			
				25/06/2008, 16:29
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: agosto-2003 
						Mensajes: 120
					 Antigüedad: 22 años, 2 meses Puntos: 0 |  | 
  |  ordenar con GROUP BY, HAVING  
  Tengo la siguiente tabla:
 id 	id_items 	id_fc 	nombre 	cantidad 	unidad 	precio 	moneda
 1  	         1            	0  	        Prod1  	9612  	unidad  	152  	dolar
 21  	         1  	        1  	        prod3  	150  	NULL  	NULL  	NULL
 9  	         1     	0       	prod3  	500  	ton    	321  	peso
 20            1 	        1 	        Prod1 	100    	NULL 	NULL 	NULL
 19 	         1 	        NULL 	NULL 	NULL 	NULL 	NULL 	NULL
 
 Quiero obtener los registros agrupados por nombre, con los datos de aquel que tenga id_fc = 0 o NULL (unico). Aparte, quiero tener una columna que me de la suma de las cantidades de todos los items de ese nombre (con distintos id_fc) menos la cantidad del mostrado.
 
 Hago lo siguiente:
 SELECT * , (SUM( cantidad ) - cantidad) AS facturado FROM PRODUCTOS WHERE id_items = '1' GROUP BY nombre HAVING ( id_fc =0 OR id_fc IS NULL )
 
 El problema es que me devuelve:
 
 id 	id_items 	id_fc 	nombre 	cantidad 	unidad 	precio 	moneda 	facturado
 19 	1 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL 	NULL
 1 	1 	0 	        Prod1 	9612 	unidad 	152 	       dolar 	100
 
 Deberia aparecer prod3, pero evidentemente esta tomando la fila que tiene id_fc antes de hacer el HAVING y por eso queda afuera.
 
 Como hago que el GROUP BY tome la fila con id_fc mas bajo o cero?
 
 Muchas Gracias
     |