Sisisi, mira te paso un ejemplo de mi laburo, en donde tenemos una tabla con las FACTURAS (un registro x factura) y otra tabla en donde estan los detalles de las FACTURAS Y la clave de la factura son...5 campos !! Este seria la query para ver, para cada factura, cuantos detalles tiene...
select FC.id_empresa,FC.id_tipo_comprobante,FC.id_sucursal, FC.id_tipo_de_factura,FC.id_nro_factura, count(*) as cant_detalles from FACTURA FC join FACTURA_DETALLE FD on FC.id_empresa = FD.id_empresa and FC.id_tipo_comprobante = FD.id_tipo_comprobante and FC.id_sucursal = FD.id_sucursal and FC.id_tipo_De_factura = FD.id_tipo_De_factura and FC.id_nro_factura = FD.id_nro_factura group by FC.id_empresa,FC.id_tipo_comprobante,FC.id_sucursal, FC.id_tipo_de_factura,FC.id_nro_factura Algo adicional: si agregas un campo mas en el resultset (por ejemplo, la fecha de la orden de compra o cualquier otro campo), agregalo tambien en el "group by" !! Aunque no tenga mucho sentido a primera vista, si estas haciendo un group by y en el resultset tenes un campo que no es un computo (como count(), sum() etc...) y por el cual no estas agrupando, se te trula la consulta, y el resultado es cualquier cosa.... ojala sirva saludos MA_Xx On 9/20/07, Mauro Ciancio <[EMAIL PROTECTED]> wrote: > > Perfecto, gracias Maximiliano, vale lo mismo si en vez de tener un solo > campo clave > en las tablas, tengo varios que son clave, deberia hacer join sobre los > clave, y hacer el > group by en los clave? > > Gracias de vuelta, > Mauro > > On 9/20/07, Maximiliano Milicich <[EMAIL PROTECTED]> wrote: > > > > Mauro, lo q respondio Mariano Ayesa deberia funcionarte... > > Fijate que la condicion de join entre ordenes_compra y Facturas es " > > oc.id = f.oc_id" > > O sea, "joineas" por el ID de OC... > > > > Mariano le puso "oc_id" al ID de OC en la tabla facturas, reemplazalo > > por el nombre q tenga la columna en tu sistema (repito, el ID de OC en la > > tabla FACTURAS, NO el ID de facturas) > > > > Te aporto lo mismo pero en version ANSI SQL > > > > select OC.id <http://oc.id/> as ID_OC,count(*) as cantidad_facturas > > from ORDENES_COMPRA OC inner join FACTURAS F on OC .id <http://oc.id/>= > > F.oc_id > > group by OC.id <http://oc.id/> > > > > Comentanos como salio > > Saludos > > MA_Xx > > > > On 9/20/07, Mauro Ciancio < [EMAIL PROTECTED]> wrote: > > > > > Estoy probando esto y no me funciona, el count me devuelve uno para > > > todas las filas. No se que estoy haciendo mal. > > > > > > Repito por si quedo algo claro. > > > > > > La tabla Ordenes Compra (OC) tiene un ID de OC. > > > > > > La tabla facturas tiene un ID de factura y un campo ID de OC. > > > > > > Una OC puede tener muchas facturas. > > > > > > Quiero contar la cantidad de facturas que tiene cada OC. > > > > > > Desde ya, muchas gracias > > > Mauro. > > > > > > Gracias Mariano y Lautaro por sus respuestas. > > > > > > > > > _______________________________________________ > > > Lista de correo Programacion. > > > [email protected] > > > http://listas.fi.uba.ar/mailman/listinfo/programacion > > > > > > > > > > _______________________________________________ > > Lista de correo Programacion. > > [email protected] > > http://listas.fi.uba.ar/mailman/listinfo/programacion > > > > > > _______________________________________________ > Lista de correo Programacion. > [email protected] > http://listas.fi.uba.ar/mailman/listinfo/programacion > >
_______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
