nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 31 déc. 2008 à 21:36
Salut,
Je ne connais pas DB2, mais je vais tenter de repondre.
Ton probleme n'est pas fait pour etre repondu en SQL
car SQL est ensembliste et par definition non ordonné
donc impossible de dire que l'enfant 1 aura le numero 1
Il est peut etre possible de passer par un rank ou une histoire du genre
et encore la numerotation de sous ensemble, je ne vois pas trop comment le faire.
Sinon il y a en denrier recours la création de procédure stockée.
EricSQL
Messages postés33Date d'inscriptionsamedi 11 octobre 2008StatutMembreDernière intervention24 février 2011 21 janv. 2009 à 21:09
Comme ceci peut être :
Select IdPersonne
, F.IdFamille
, Nom
, Prenom
, Categorie
, case Categorie when 'ENFANT' then IdPersonne - minID + 1 else NULL end
From FAMILLE F
left outer join ( Select IdFamille, min(IdPersonne) as minId
From FAMILLE
Where Categorie = 'ENFANT'
Group by IdFamille
) M
on F.IdFamille = M.IdFamille
Order by IdPersonne
;