Je comprends pas pkoi j'ai cette erreur sur ma vue sous Oracle

Je comprends pas pkoi j'ai cette erreur sur ma vue sous Oracle - SQL/NoSQL - Programmation

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 !! :sweat:  
 
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  :cry:

Reply

Marsh Posté le 29-10-2003 à 08:46:09   

Reply

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 ...

Reply

Marsh Posté le 29-10-2003 à 16:04:11    

plusieurs enregistrements?
si oui, comment?
merci bien !

Reply

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')  
     from bouygues B  
    where ZONE_APPELE=B.No_TELEPHONE=A.No_TELEPHONE )


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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed