Dejando el preambulo atras, les presento mi problema, estoy aprendiendo mysql por mi cuenta:
estas son las tablas de mi base de datos
CREATE DATABASE IF NOT EXISTS tiendita
CREATE TABLE IF NOT EXISTS `clientes` (
`CodCli` varchar(5) NOT NULL,
`NomCli` varchar(15) NOT NULL
) ;
CREATE TABLE IF NOT EXISTS `detalle` (
`NumFac` int(15) NOT NULL,
`CodProd` varchar(15) NOT NULL,
`Cant` int(5) NOT NULL
);
CREATE TABLE IF NOT EXISTS `facturas` (
`NumFac` int(15) NOT NULL,
`CodFac` varchar(15) NOT NULL,
`Monto` float NOT NULL
) ;
CREATE TABLE IF NOT EXISTS `productos` (
`CodProd` varchar(15) NOT NULL,
`NomProd` varchar(15) NOT NULL,
`Existencia` int(9) NOT NULL,
`Alicuota` int(3) NOT NULL,
`Precio` float NOT NULL,
`Costo` float NOT NULL
) ;
Quiero obtener un lista que muestre de cada factura los siguientes datos
numero de la factura, nombre del cliente y el total de productos con alicuota en igual a cero de cada factura ejemplo :
[I]NumFac NomCli productosExentos
1 juan 0
2 pepe 3
3 ana 2[/I]
yo hice esta consulta
SELECT factura.NumFac, cliente.NomCli, COUNT( alicuota )
FROM detalle, producto, cliente, factura
WHERE producto.CodProd = detalle.CodProd
AND cliente.CodCli = factura.CodCli
GROUP BY factura.NumFac
sin embargo en vez de los producto con alicuota igual a cero de cada factura, me devuelve la cantidad de productos con alicuota igual a cero en toda al tabla :
ejemplo: si hay 8 productos en factura con alicuota igual a cero
NumFac NomCli productosExentos
1 juan 8
2 pepe 8
3 ana 8
agradesco desde ahora cualquier ayuda (o critica).