PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 08/09/2010 16:32:28

jcsol
Membre

recherche sur doublons

bonjour,
je cherche à effectuer une commande SELECT sur un sous ensemble d'une table, sous ensemble déterminé par toutes les entrées en doublon sur un champ donné.
et cela coince...

les deux recherches séparées fonctionnent :

1) recherche des doublons
SELECT dhcplease.dhcplease_clientname
FROM dhcplease
GROUP BY dhcplease.dhcplease_clientname
HAVING Count(*) > 1;

2)sortie de certaines entrées de la table dhcplease

select dhcpscope.dhcpscope_name,dhcplease.dhcplease_ip_addr,dhcplease.dhcplease_clientname, dhcplease.dhcplease_time,dhcplease.dhcplease_end_time, dhcplease.delete_time
from dhcpscope,dhcplease
where dhcplease.dhcpscope_id = dhcpscope.oid
and dhcplease.dhcp_id = 1
and to_timestamp(dhcplease.dhcplease_end_time) > localtimestamp;

Mais je reste incapable de conditionner le champ de recherche de la seconde par le retour de la première...(j'ai tenté le WITH, UNION, sans succès).

Une idée ? Je vous remercie de votre aide.
jean-christophe.

Hors ligne

#2 08/09/2010 20:35:07

Marc Cousin
Membre

Re : recherche sur doublons

Bonjour,

La question n'est pas très claire, donc je vais essayer une solution 'au feeling', si ce n'est pas bon, merci de repréciser, de préférence avec un exemple, ce que vous voulez faire.

select dhcpscope.dhcpscope_name,dhcplease.dhcplease_ip_addr,dhcplease.dhcplease_clientname, dhcplease.dhcplease_time,dhcplease.dhcplease_end_time, dhcplease.delete_time
from dhcpscope,dhcplease
where dhcplease.dhcpscope_id = dhcpscope.oid
and dhcplease.dhcp_id = 1
and to_timestamp(dhcplease.dhcplease_end_time) > localtimestamp
and
  dhcplease_clientname IN (
      SELECT dhcplease.dhcplease_clientname
FROM dhcplease
GROUP BY dhcplease.dhcplease_clientname
HAVING Count(*) > 1
  )

Est-ce ce que vous cherchiez ?


Marc.

Hors ligne

#3 09/09/2010 08:41:16

jcsol
Membre

Re : recherche sur doublons

bonjour, et merci de votre réponse !
cette requête ne plante pas, contrairement aux miennes, c'est déjà beaucoup !
J'ai besoin de plus de temps pour en comprendre le retour.

Pour éclaircir mon besoin : il s'agit d'un BDD contenant les infos relatives à un serveur DHCP. L'idée est de rechercher les éventuelles erreurs de d'affectation d'adresses IP, dans ce cas ci la liste des machines (dhcplease_clientname) ayant plus d'une adresse IP  (dhcplease_ip_addr) valide (to_timestamp(dhcplease.dhcplease_end_time) > localtimestamp).

merci encore,

jc

Hors ligne

#4 09/09/2010 08:59:52

Marc Cousin
Membre

Re : recherche sur doublons

Ok, donc c'est bien cette requête je pense: tout ce qu'elle rajoute à la seconde requête, c'est la vérification que le dhcplease_clientname est dans la liste des noms retournés par la sous-requête (la première requête).


Marc.

Hors ligne

Pied de page des forums