Je comprends pas pkoi j'ai cette erreur sur ma vue sous Oracle - SQL/NoSQL - Programmation
Marsh Posté le 29-10-2003 à 15:47:53
Essaye déjà de simplifier ta vue et tu complexifie au fur
et à mesure
ex : tes sous-requêtes
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Appels renvoyés'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Appels_renvoyes,
=> Tu les remplaces par NULL
Une autre chose : Ces sous-requêtes renvoient plusieurs enregistrements ? si oui faudra ptet ecrire ta requête
différemment ...
Marsh Posté le 29-10-2003 à 18:41:26
En parcourant ton ordre, il semble que tes sous-requêtes renvoient chacune un seul enregistrement (une somme).
Mais es tu sûr de celle-ci :
Citation : select SUM('CT_Appels_renvoyes,CT_Autres,CT_Com_emises_etranger,CT_Com_internationales,CT_Com_internes,CT_Com_nationales,CT_Com_recues_etranger,CT_Mess_vocale_telecopie,CT_Telemessages,CT_Trans_donnees,CT_Trans_telecopies,CT_Abonnement') |
Les quotes me semblent bizarre pour une somme...
Si tous ces champs doivent être additionnés, utilise simplement le + entre eux, et vérifie que cela ramène une seule ligne. D'autre part la syntaxe de la clause where semble incorrecte: La colonne ZONE_APPELE semble être du texte, étrange de la comparer avec un numéro de tel. La where clause doit être plutôt quelque chose du genre: ZONE_APPELE='blablabla' AND B.No_TELEPHONE=A.No_TELEPHONE
Marsh Posté le 29-10-2003 à 08:46:09
voici ma vue que je souhaite crée à partir de deux tables existantes ( noms des tables : "bouygues" et "orange" ) : prenez le temps de lire please, je suis dessus depuis 2 jours !!
create or replace view tableau3
( N_ORANGE,
MATRICULE,
NOM_PRENOM,
FONCTION,
DECIDEUR,
CODE_STRUCTURE_RH,
DECISION_GSM_Bouygues,
DATE_DE_DECISION,
PROFIL,
Dde_chgt_prof_direction,
N_BOUYGUES,
DATE_REMISE_DU_TELEPHONE,
Date_resil_abonnement_Orange,
PRET,
MNT_HT_abonnement,
MNT_HT_services_et_options,
MNT_HT_com_France,
MNT_HT_com_France_Etranger,
MNT_HT_com_Etranger_France,
MNT_HT_com_Divers,
Cumul_com_France,
Cumul_com_France_Etranger,
Cumul_com_Etranger_France,
Total_TVA,
Total_TTC,
CT_Total_ORANGE,
DUR_Appels_renvoyes,
DUR_Autres,
DUR_Com_emises_etranger,
DUR_Com_internationales,
DUR_Com_internes,
DUR_Com_nationales,
DUR_Com_recues_etranger,
DUR_Mess_vocale_telecopie,
DUR_Telemessages,
DUR_Trans_donnees,
DUR_Trans_telecopies,
CT_Appels_renvoyes,
CT_Autres,
CT_Com_emises_etranger,
CT_Com_internationales,
CT_Com_internes,
CT_Com_nationales,
CT_Com_recues_etranger,
CT_Mess_vocale_telecopie,
CT_Telemessages,
CT_Trans_donnees,
CT_Trans_telecopies,
CT_Abonnement,
CT_total_Bouygues,
N_SIM,
VILLE,
MODELE,
N_SERIE,
CODE_PUK,
DATA,
N_FIXE,
MAJ_BOUYGUES
)
as
select
NULL, --N_ORANGE,
NULL, --MATRICULE,
NULL, --NOM_PRENOM,
NULL, --FONCTION,
NULL, --DECIDEUR,
NULL, --CODE_STRUCTURE_RH,
NULL, --DECISION_GSM_Bouygues,
NULL, --DATE_DE_DECISION,
NULL, --PROFIL,
NULL, --Dde_chgt_prof_direction,
No_TELEPHONE, --N_BOUYGUES,
NULL, --DATE_REMISE_DU_TELEPHONE,
NULL, --Date_resil_abonnement_Orange,
NULL, --PRET,
NULL, --MNT_HT_abonnement,
NULL, --MNT_HT_services_et_options,
NULL, --MNT_HT_com_France,
NULL, --MNT_HT_com_France_Etranger,
NULL, --MNT_HT_com_Etranger_France,
NULL, --MNT_HT_com_Divers,
NULL, --Cumul_com_France,
NULL, --Cumul_com_France_Etranger,
NULL, --Cumul_com_Etranger_France,
NULL, --Total_TVA,
NULL, --Total_HT,
NULL, --CT_Total_ORANGE,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Appels renvoyés'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Appels_renvoyes,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Autres mobiles et n° spéciaux'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Autres,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Communications émises de l''étranger'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Com_emises_etranger,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Communications internationales'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Com_internationales,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Communications internes'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Com_internes,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Communications nationales'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Com_nationales,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Communications reçues à l''étranger'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Com_recues_etranger,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Messagerie vocale et télécopie'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Mess_vocale_telecopie,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Télémessages'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Telemessages,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Transmission de données'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Trans_donnees,
( select SUM(DUREE)
from bouygues B
where ZONE_APPELE='Transmission de télécopies'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --DUR_Trans_telecopies,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Appels renvoyés'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Appels_renvoyes,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Autres mobiles et n° spéciaux'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Autres,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Communications émises de l''étranger'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Com_emises_etranger,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Communications internationales'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Com_internationales,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Communications internes'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Com_internes,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Communications nationales'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Com_nationales,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Communications reçues à l''étranger'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Com_recues_etranger,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Messagerie vocale et télécopie'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Mess_vocale_telecopie,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Télémessages'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Telemessages,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Transmission de données'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Trans_donnees,
( select SUM(cout_ht)
from bouygues B
where ZONE_APPELE='Transmission de télécopies'
and B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_Trans_telecopies,
NULL, --CT_Abonnement,
( select SUM('CT_Appels_renvoyes,CT_Autres,CT_Com_emises_etranger,CT_Com_internationales,CT_Com_internes,CT_Com_nationales,CT_Com_recues_etranger,CT_Mess_vocale_telecopie,CT_Telemessages,CT_Trans_donnees,CT_Trans_telecopies,CT_Abonnement')
from bouygues B
where ZONE_APPELE=B.No_TELEPHONE=A.No_TELEPHONE ) , --CT_total_Bouygues,
NULL, --N_SIM,
NULL, --VILLE,
NULL, --MODELE,
NULL, --N_SERIE,
NULL, --CODE_PUK,
NULL, --DATA,
NULL, --N__FIXE,
NULL --MAJ_BOUYGUES
from BOUYGUES A
UNION
select
NUM_TEL, --N_ORANGE,
REFERENCE_COMMANDE, --MATRICULE,
NOM_ABONNE, --NOM_PRENOM,
NULL, --FONCTION,
NULL, --DECIDEUR,
NULL, --CODE_STRUCTURE_RH,
NULL, --DECISION_GSM_Bouygues,
NULL, --DATE_DE_DECISION,
NULL, --PROFIL,
NULL, --Dde_chgt_prof_direction,
NULL, --N_BOUYGUES,
NULL, --DATE_REMISE_DU_TELEPHONE,
NULL, --Date_resil_abonnement_Orange,
NULL, --PRET,
Montant_HT_abonnement, --MNT_HT_abonnement,
Montant_HT_services_et_options, --MNT_HT_services_et_options,
Montant_HT_com_France, --MNT_HT_com_France,
Montant_HT_com_France_etranger, --MNT_HT_com_France_Etranger,
Montant_HT_com_etranger_France, --MNT_HT_com_Etranger_France,
Montant_HT_com_Divers, --MNT_HT_com_Divers,
Cumul_com_France_sec, --Cumul_com_France,
Cumul_com_France_Etranger_sec, --Cumul_com_France_Etranger,
Cumul_com_Etranger_France_sec, --Cumul_com_Etranger_France,
Total_TVA, --Total_TVA,
Total_HT, --Total_HT,
Total_TTC, --CT_Total_ORANGE,
NULL, --DUR_Appels_renvoyes,
NULL, --DUR_Autres,
NULL, --DUR_Com_emises_etranger,
NULL, --DUR_Com_internationales,
NULL, --DUR_Com_internes,
NULL, --DUR_Com_nationales,
NULL, --DUR_Com_recues_etranger,
NULL, --DUR_Mess_vocale_telecopie,
NULL, --DUR_Telemessages,
NULL, --DUR_Trans_donnees,
NULL, --DUR_Trans_telecopies,
NULL, --CT_Appels_renvoyes,
NULL, --CT_Autres,
NULL, --CT_Com_emises_etranger,
NULL, --CT_Com_internationales,
NULL, --CT_Com_internes,
NULL, --CT_Com_nationales,
NULL, --CT_Com_recues_etranger,
NULL, --CT_Mess_vocale_telecopie,
NULL, --CT_Telemessages,
NULL, --CT_Trans_donnees,
NULL, --CT_Trans_telecopies,
NULL, --CT_Abonnement,
NULL, --CT_total_Bouygues,
NUM_CARTE_SIM, --N_SIM,
NULL, --VILLE,
NULL, --MODELE,
NULL, --N_SERIE,
NULL, --CODE_PUK,
NULL, --DATA,
NULL, --N__FIXE,
NULL --MAJ_BOUYGUES
from ORANGE;
et je me chope cette erreur :
MAJ_BOUYGUES
*
ERREUR à la ligne 59 :
ORA-00904: "CT_COM_RECUES_ETRANGER": invalid identifier
HELP