Estimados listeros, les pido si me pueden ayudar a resolver esta query, en la 
medida de lo que fuera posible, con T-SQL y sin usar a los  cursores de 
servidor.

Tengo una tabla de items de facturas. Supongamos que solo tiene las 3 columnas 
que me interesan para la query:  1) Cod. de factura  2) cod. de articulo y 3) 
cantidad.   En esta tabla,   la PK es  codigos de  factura + codigo de 
articulo.   

Necesito obtener una sola fila por cada una de las facturas,  que también tenga 
3 columnas: 

1) Codigo de factura.
2) Codigo del articulo que tiene la mayor cantidad de unidades vendidas.
3) La cantidad que corresponde al articulo con la mayor cantidad de unidades 
vendidas.

Si llegara a haber una factura que tenga dos o mas articulos con la misma 
cantidad maxima vendida, tengo que tomar uno cualquiera de ellos, no importa 
cual, pero NO PUEDO informar dos veces la misma factura.

Para aclarar, les pongo un ejemplo

create table dbo.item_facturas ( cod_factura char(10)  , cod_artic char(10), 
cantidad int)

insert dbo.item_facturas  values ( 'FAC001', 'ART020' , 5 )
insert dbo.item_facturas  values ( 'FAC001', 'ART022' , 4 )
insert dbo.item_facturas  values ( 'FAC002', 'ART122' , 12 )
insert dbo.item_facturas  values ( 'FAC003', 'ART122' , 10 )
insert dbo.item_facturas  values ( 'FAC003', 'ART121' , 15 )
insert dbo.item_facturas  values ( 'FAC003', 'ART020' , 15 )


El resultado tendrá que tener 3 filas, que pueden ser

'FAC001', 'ART020' , 5 
'FAC002', 'ART122' , 12 
'FAC003', 'ART020' , 15 

o también estaría OK de la siguiente manera: 

'FAC001', 'ART020' , 5 

'FAC002', 'ART122' , 12 

'FAC003', 'ART121' , 15 


Desde ya, muchas gracias para todos !

Ricardo.






_________________________________________________________________
Descargá GRATIS el poder del nuevo Internet Explorer 7.
http://optimized.msn.com/Default.aspx?mkt=es-ar

Responder a