
25/06/2008, 16:29
|
| | Fecha de Ingreso: agosto-2003
Mensajes: 120
Antigüedad: 21 años, 8 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 |