Ok, ahora si te entendi ferpectamente.
Pregunta: ¿Como sabes cual es la ultima compra? Parece una pregunta tonta pero fíjate.
Si decimos que es por fecha de compra y tomo la ultima fecha, entonces ¿que pasaria con un producto que se compro 2 veces en el mismo dia?. Si no se compra en el mismo dia la cosa se resuelve facil, si no, entonces tomariamos por el Id de compra, y aqui viene la segunda pregunta ¿Ingresan las compras cronologicamente? porque pueden tener estos ingresos del producto A (mostrare solo cabecera)
id fecha tipo numero
11 10/11/2012 A 00000035
14 11/11/2012 B 00000043
17 09/11/2012 A 00000024
Tendríamos que preguntar por id y fecha... para no enredar mas aclárame esos puntillos, por lo pronto la solución mas rápida hasta darle una buena pensadita es hacer un max de la compra pero dentro de un Select que estará en tu Select principal pero que dicho Select debe darte un solo valor. Ejemplo
Select A, B, (Select Max(D) From Tabla Where Dato1 = Dato2), C
From Tabla1, ...
Where ....
otra solución (que yo uso para otros fines) es tener en el maestro del producto (que alli lo tengo) o en una tabla aparte el ultimo precio de compra, es decir, cuando viene una nueva compra actualizo ese valor, de esa forma lo tomas directamente de tu misma tabla Artículos.
Otra cosa fuera de tu pregunta, por curiosidad y que quizá no has contemplado o quizá si lo contemplas pero no lo mencionas y es sobre lo siguiente:
Dices que quieres mostrar el ultimo precio de compra para saber cuanto se pago por cada articulo... ¿para que?. Te comento esto porque en el mercado donde yo implemento mi software, el cliente siempre me pide exactamente eso. El dice: ¿Quiero ver el ultimo precio de compra para poder saber hasta cuanto bajarle el precio al cliente?.
Es entonces donde le explico que lo que pide es incorrecto, lo que el debe fijarse es en el costo del articulo no en el ultimo precio de compra porque Precio de Compra no es lo mismo que Costo ¿estamos claros en eso?. Solo es lo mismo si siempre compras al mismo precio. Ahora, quizá no estas manejando "costeos" y le indicas al cliente que el ultimo precio de compra es su costo, entonces allí te indico que tengas cuidado porque puedes tener una patinada ya que dicha afirmación es un error.
Me comentas, Saludos