Prendre que les elements qui n'ont pas la valeurs de champs est unique [Résolu]

Signaler
Messages postés
38
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
4 avril 2008
-
Messages postés
38
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
4 avril 2008
-
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

Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
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,
Messages postés
38
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
4 avril 2008

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
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
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 !
Messages postés
38
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
4 avril 2008

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