Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2006, 16h25   #1
Candidat au titre de Membre du Club
 
Homme
Administrateur de base de données
Inscription : juillet 2006
Messages : 109
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Transports

Informations forums :
Inscription : juillet 2006
Messages : 109
Points : 12
Points : 12
Par défaut select complexe à formuler

Bonjour

je vais essayer de préciser clairement mon problème:

soit 2 tables OBJ et EVT avec respectivement les champs code(pk),cat pour OBJ
et obj,ppm,code(pk) pour EVT

règle: tous les obj.code appartenant à une categorie obj.cat
doivent avoir le ou les memes evt.ppm associés

je voudrais donc lister tous les obj.code
pour lesquels il manque un lien (evt.ppm,evt.obj) dans evt (en se referant à obj_cat)
gg2vig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 11h21   #2
Candidat au titre de Membre du Club
 
Homme
Administrateur de base de données
Inscription : juillet 2006
Messages : 109
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Transports

Informations forums :
Inscription : juillet 2006
Messages : 109
Points : 12
Points : 12
Par défaut cas exemple

OBJ

CODE CAT
O1 C1
O2 C2
O3 C1
O4 C3
O5 C1
O6 C2
O7 C3
O8 C2

EVT

CODE OBJ PPM
1001 O1 P1
1002 O1 P2
1003 O2 P3
1004 O3 P1
1005 O4 P2
1006 O5 P1
1007 O6 P3
1008 O7 P2

RESULTAT ATTENDU

OBJ PPM
O8 P3 LES OBJETS DE CATEGORIE C2 ont P3
O3 P2 LES OBJETS DE CATEGORIE C1 ont P1 et P2
O5 P2 LES OBJETS DE CATEGORIE C1 ont P1 et P2

si au mois un OBJ d'une CAT est lié à un PPM alors les autres oBJ de la meme CAT doivent l'etre aussi
gg2vig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 12h13   #3
Membre Expert
 
Inscription : avril 2006
Messages : 1 024
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 024
Points : 1 175
Points : 1 175
Si je comprends bien, tu veux chercher des couples objet/PPM pour lesquels il existe d'autres objets de la meme catégories pour lesquels il n'existe pas de correspondance avec le PPM... en essayant de le traduire en sql (qui est un vague dérivé de l'anglais ) ça donnerait:

Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT E1.OBJ, E1.PPM FROM EVT E1
 WHERE EXISTS
   ( SELECT 1 FROM OBJ O1,OBJ O2 
         WHERE 
             E1.OBJ = O1.CODE 
             AND O1.CAT = O2.CAT 
             AND NOT EXISTS
               (SELECT 1 FROM EVT E2
                  WHERE O2.CODE = E2.OBJ
                   AND E2.PPM = E1.PPM )
   )
non testé désolé
remi4444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 16h16   #4
Candidat au titre de Membre du Club
 
Homme
Administrateur de base de données
Inscription : juillet 2006
Messages : 109
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Transports

Informations forums :
Inscription : juillet 2006
Messages : 109
Points : 12
Points : 12
testé mais ça ne fonctionne pas car e1.ppm n'existe pas .(est justement le chainon manquant)

je veux connaitre tous les couples OBJ/PPM manquants c'est à dire que tous les objets d'une meme categorie doivent avoir les meme liens PPM
donc pour chaque objet verifier que tous les PPM liés aux autres objets de sa categorie lui sont aussi liés.
gg2vig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 17h09   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Le souci, c'est qu'un ppm peut exister dans un code mais pas dans un autre d'une même cat et vice-versa.
Dans ce cas il faut identifier de manière unique tous les PPM d'une CAT ou d'un CODE (en transformant les lignes en colonne)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
FUNCTION F_PPM_CAT(p_cat IN VARCHAR2)
RETURN VARCHAR2
IS 
	CURSOR c IS
	SELECT DISTINCT PPM
	FROM OBJ, EVT
	WHERE obj.code = evt.code
	AND obj.cat = p_cat
	ORDER BY ppm;
	v_retour VARCHAR2(4000);
BEGIN
	FOR r IN c 
	LOOP
		v_retour := LTRIM(v_retour || ','||r.ppm, ',');
	END LOOP;
	RETURN v_retour;
END;
FUNCTION F_PPM_OBJ(p_code IN VARCHAR2)
RETURN VARCHAR2
IS 
	CURSOR c IS
	SELECT DISTINCT PPM
	FROM EVT
	WHERE evt.code = p_code
	ORDER BY ppm;
	v_retour VARCHAR2(4000);
BEGIN
	FOR r IN c 
	LOOP
		v_retour := LTRIM(v_retour || ','||r.ppm, ',');
	END LOOP;
	RETURN v_retour;
END;
 
SELECT code, cat, F_PPM_OBJ(code), F_PPM_CAT(cat)
FROM OBJ
WHERE F_PPM_OBJ(code) <> F_PPM_CAT(cat)
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 16h18   #6
Candidat au titre de Membre du Club
 
Homme
Administrateur de base de données
Inscription : juillet 2006
Messages : 109
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Transports

Informations forums :
Inscription : juillet 2006
Messages : 109
Points : 12
Points : 12
Par défaut pb liste dans champ

J'ai testé merci ça fonctionne



mais le pb est qu en mode liste dans un meme champ il faut faire encore un travail de comparaison et d'extraction des PPM manquants d'un OBJ pour regenerer les liens PPM,OBJ manquant

il n'est donc pas possible le lister directement les couples OBJ,PPM manquants
en 1 seule requete?
gg2vig est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h49.


 
 
 
 
Partenaires

Hébergement Web