se nella

SELECT DISTINCT Stock.[Codice], Stock.[Seriale], Min(Stock.[Data]) AS [MinOfData]

consideri anche il seriale, il seriale verrà (appunto!) considerato e creerà una entry; tu invece vuoi lo stock con data minima, indipendentemente dal seriale