S'il manque les numéro de lots des autres composants c'est simplement qu'il n'y en a pas, votre base de données est truffé d'erreur, ex : "bannane" écris avec deux n
Ensuite par FIFO, le plus simple serait de mettre votre BDD trié dans cette ordre, ainsi il serais toujours utilisé en premier.
Pour ce qui est du stock à 0 c'est normal, c'est qu'il n'y en a plus besoin, sinon il faut séparer en deux colonne ce que vous voulez, soit c'est le stock restant à utiliser soit c'est le stock qui à été utilisé. Dans le fichier que je vous ai envoyer c'est donc le stock restant à utiliser, qui est à 0 puisque tout à été consommé et déduis du stock réel !
Avez-vous regarder le code j'ai mis des commentaires et je me suis basé sur ce que vous aviez déjà fait ?