Bonjour.
Rien que pour donner un titre à mon message, j'ai du mal...
Le problème est plutôt simple.
J'ai une table MaTable avec 3 colonnes :
id en autoincrément
id_groupe int
etat NVARCHAR(1) qui est une lettre majuscule de A à F.
Je souhaite récupérer pour chaque id_groupe,
les id supérieurs au plus petit id qui a un etat = 'A'
lui même étant celui supérieur à l'id le plus petit qui est différent de A
Dit différemment : Je cherche à avoir les id pour chaque id_groupe qui ont un etat A sauf celui ayant le plus petit id qui n'ont pas d'id en état différent de A supérieur.
Ou encore, pour chaque id_groupe de cette sélection :Je souhaite avoir ces valeurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT DISTINCT( id_groupe )FROM MaTable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DECLARE @maxIdNonA INT; DECLARE @minIdA INT; SELECT @maxIdNonA = MAX (id) FROM MaTable WHERE id_groupe = 1 AND etat <> 'A'; SELECT @minIdA = MIN (id) FROM MaTable WHERE id_groupe = 1 AND etat ='A' AND id > @maxIdNonA ; SELECT * FROM MaTable WHERE id_groupe = 1 AND etat ='A' AND id > @minIdA ORDER BY id DESC;
Partager