Prendre que les elements qui n'ont pas la valeurs de champs est unique

Résolu
ethan_decoster Messages postés 38 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 4 avril 2008 - 30 mars 2006 à 17:47
ethan_decoster Messages postés 38 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 4 avril 2008 - 31 mars 2006 à 12:34
Je vais essayer de vious expliquer mon cas...

G une requete :

SELECT CAS, ISOLATEUR FROM CI WHERE ((CAS "27649") OR (CAS "27650") OR (CAS = "27651") OR (CAS = "27652") OR (CAS = "27653")) ORDER BY ISOLATEUR;

Le probleme c'est que dans les differents cas 27649, 27650, ... il y a des isolateur communs (ex.: CAS 27649 et CAS 27650 ont l'isolateur R125/4) et ces doublons "isolateurs" il ne faut pas qu'il apparaissent dans le resultat final mais seulement les isolateurs qui sont uniques.

Quelqu'un aurait une piste?

Moi je comparerais chaque enregistrement en le comparant avec l'enregistrement suivant en eliminant les enregistrement qui ont les isolateurs communs...

Mais j'ai aucune idee de comment mettre ca en SQL...

Merci pour votre aide
Ethan Decoster

4 réponses

Mindiell Messages postés 559 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
31 mars 2006 à 09:56
Bonjour,

Dans ton cas, peux-tu nous dire ce que tu obtiens et ce que tu veux, genre :
j'ai ca :
cas isolateur
------------------
27649 R125/4
27650 R125/4

je veux ca :
cas isolateur
------------------
27650 R125/4

C'est à dire supprimer l'isolateur en trop.
Si c'est ca que tu veux, comment choisit-on le cas à garder, le plus grand, le plus petit, n'importe ?

Voila,
3
ethan_decoster Messages postés 38 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 4 avril 2008
31 mars 2006 à 10:11
Voila pour le moment g ca comme resultat a mon select:

CAS ISOLATEUR
27649 I125/1
27650 I125/2
27649 I125/3
27649 I125/4
27650 I125/4
27649 I125/7
27651 I126/3
27650 I126/3
27651 I126/4
27652 I126/4
27651 I126/6
27652 R117
27653 R126
27651 R126/1
27649 R126/1
27652 R126/2
27650 R126/2
27653 R126/5
27651 R126/5

Et il m'est demande ca dans le programme(si c'est possible):

CAS ISOLATEUR
27649 I125/1
27650 I125/2
27649 I125/3
27649 I125/7
27651 I126/6
27652 R117
27653 R126
3
Mindiell Messages postés 559 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
31 mars 2006 à 10:15
Tu veux donc eliminer les doublons, pas juste n'en prendre qu'un...
alors...
SELECT cas, isolateur
FROM ci
WHERE isolateur IN
(
SELECT isolateur
FROM ci
GROUP BY isolateur
HAVING COUNT(isolateur) = 1
)

Voilà, la sous-requête te permet de ne sélectionner que les isolateurs présents une seule fois, la requête principale te permet d'afficher leur cas :o)

bon courage !
3
ethan_decoster Messages postés 38 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 4 avril 2008
31 mars 2006 à 12:34
Merci cette fonction est la bonne et elimine tout les doublons isolateurs dans la requete donc je ne grde que les resultats bon. Et je n'ai pas besoin des cas se rapportant au isolateur donc c'est nickel.

Merci


SELECT isolateur
FROM ci
GROUP BY isolateur
HAVING COUNT(isolateur) = 1
3
Rejoignez-nous