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

Responder a