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 
   
 

