bonjour,
je voudrais effectuer une requete sur 2 tables avec un jointure interne.
voici le schema de mes 2 tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Table ELP_GRILLE Name Null? Type ----------------- -------- ---- COD_ANN NOT NULL VARCHAR2(4) COD_ELP NOT NULL VARCHAR2(10) COD_SCC VARCHAR2(4) COD_PEL NOT NULL VARCHAR2(2) COD_CMP NOT NULL VARCHAR2(4) LIC_ELP VARCHAR2(25) LIB_ELP VARCHAR2(60) NOM_RESP_ELP VARCHAR2(40) NBR_VOL_ELP NUMBER(6,2) NBR_GRP_CM_ORI NUMBER(2) NBR_GRP_CM_MOD NUMBER(2) NBR_GRP_CM_REEL NUMBER(2) NBR_GRP_TD_ORI NUMBER(2) NBR_GRP_TD_MOD NUMBER(2) NBR_GRP_TD_REEL NUMBER(2) NBR_GRP_TP_ORI NUMBER(2) NBR_GRP_TP_MOD NUMBER(2) NBR_GRP_TP_REEL NUMBER(2) NBR_HEU_CM_ELP NUMBER(4) NBR_HEU_TD_ELP NUMBER(4) NBR_HEU_TP_ELP NUMBER(4) COMMENT_ELP VARCHAR2(2000) TEM_SUS_ELP VARCHAR2(1) DAT_CRE_ELP DATE DAT_MOD_ELP DATEmon besoin est de rapatrier la table ELEMENT_PEDAGOGI ( situee sur une uatre base avec lien DB_LINK ) dans la table ELP_GRILLE en fonction de certains criteres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Table ELEMENT_PEDAGOGI Name Null? Type ----------------- -------- ---- COD_ELP NOT NULL VARCHAR2(10) COD_SCC VARCHAR2(4) COD_PEL NOT NULL VARCHAR2(2) COD_CMP NOT NULL VARCHAR2(4) LIC_ELP VARCHAR2(25) LIB_ELP VARCHAR2(60) NBR_VOL_ELP NUMBER(6,2) NBR_HEU_CM_ELP NUMBER(4) NBR_HEU_TD_ELP NUMBER(4) NBR_HEU_TP_ELP NUMBER(4) LIB_CMT_ELP VARCHAR2(2000) TEM_SUS_ELP VARCHAR2(1)
ma requete concerne la verification des champs entre les tables, afin d'effectuer une MAJ de la table ELP_GRILLE si un des champs de la table
ELEMENT_PEDAGOGI à changer.
voici le code de ma requete.
je resultat sans les test de champs est ok, mais des que je test la non equivalence entre 2 champs, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 SELECT DISTINCT (Elp.Cod_Elp), Elp.Cod_Scc, Elp.Cod_Pel, Elp.Lic_Elp, Elp.Lib_Elp, Elp.Nbr_Vol_Elp, Elp.Nbr_Heu_Cm_Elp, Elp.Nbr_Heu_Td_Elp, Elp.Nbr_Heu_Tp_Elp, Elp.Lib_Cmt_Elp, Elp.Tem_Sus_Elp FROM Elp_Grille Gri, a_Element_Pedagogi Elp WHERE Gri.Cod_Elp = Elp.Cod_Elp AND Gri.Cod_Ann = '2004' AND Gri.Tem_Sus_Elp <> Elp.Tem_Sus_Elp AND (Gri.Lic_Elp <> Elp.Lic_Elp OR Gri.Lib_Elp <> Elp.Lib_Elp OR Gri.Nbr_Vol_Elp <> Elp.Nbr_Vol_Elp OR Gri.Nbr_Heu_Cm_Elp <> Elp.Nbr_Heu_Cm_Elp OR Gri.Nbr_Heu_Td_Elp <> Elp.Nbr_Heu_Td_Elp OR Gri.Nbr_Heu_Tp_Elp <> Elp.Nbr_Heu_Tp_Elp OR Gri.Comment_Elp <> Elp.Lib_Cmt_Elp OR Gri.Tem_Sus_Elp <> Elp.Tem_Sus_Elp) ;
soit aune projection si je les met entre ()
soit le produit cartesien des 2 tables
je sais ca à l'air facil comme ca.
si quelqu'un a une solution et surtout une explication, ca m'arrangerai beaucoup
merci![]()
Partager