Salut

J'ai pas trouvé de titre pour mon post.
ça change pas que j'ai besoin d'aide sur .... du SQL ! woah ! j'aime pas le sql.

Ma problématique n'est pas folle et je vous remercie de prendre du temps pour m'aider

En gros j'ai une liste de personnes, simple, avec des dossiers. Chaque dossier comprend au minium une personne et chaque dossier à un état. Une personne peut se retrouver dans plusieurs dossier.

Donc ma requêtes qui fait une jointure entre les deux va cherche via l'id de la personne le dossier. Donc si la personne fait partie de plusieurs dossier j'aurais plusieurs ligne dans mon select.

Julien -> Dossier A -> ETAT = F
Julien -> Dossier B -> ETAT = R

Imaginons c'est deux lignes simples.

Je veux récupérer uniquement les dossiers l'état F mais pas les R. simple.

Maintenant ça doit évoluer, et je veux que SI julien à un dossier R (même s'il a un F à coté) Je le prend pas dans mon select. Et la je bloque.

Alors je pourrais le faire en PHP ou en JS peut importe. Mais je souhaite le faire en SQL car je veux apprendre.

Merci à vous. le sujet est long, mais pas complexe Smiley smile
Pour les passionés voici la vrai requête, enfin.... je l'ai simplifier Smiley smile

SELECT DISTINCT
            '{$subject}' as title,
        	UPPER(LEFT(i.prenom_pas,1)) + LOWER(RIGHT(i.prenom_pas,len(i.prenom_pas) - 1)) AS prenom,
        	i.email AS email_to_send
        FROM
        	individu i
        JOIN
        	dossier d ON d.num_dos = pd.num_dos
        WHERE
        	1=1
        AND
            (
                (d.etat_dos = 'D' OR d.etat_dos = 'DA' OR d.etat_dos = 'F')
                AND 
                ((YEAR(GETDATE()) - YEAR(d.dt_ouvert)) < 10)
            )
        
Bonjour,

Désolé mais je n'ai pas bien compris ta question.

Tu veux récupérer les dossiers F, mais seulement si la personne n'a pas de dossier R si j'ai bien compris?
SI oui tu n'as pas besoin du IF, ou en tout cas ce n'est pas obligé.
Tu peux faire appel a un sous requête pour faire ton tri :

SELECT dossier 
FROM Table
WHERE ETAT= F AND prenom NOT IN ( SELECT DISTINCT prenom
                                  FROM Table
                                  WHERE ETAT = R)
Meilleure solution
Salut

Tu as tout à fait compris !

Merci, j'ai oublié les requêtes imbriqués... j'ai vraiment pas l'habitude.

Merci à toi c'est top !