IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

probleme de comparaison tabl1 vs tab2 oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Avril 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 23
    Par défaut probleme de comparaison tabl1 vs tab2 oracle
    re bonjour ,
    j'ai un autre probleme la table 17 comporte bien des montant et de nombre ,par contre celle de 2018 ne comporte pas de données et quant j'execute le resultats me tourne rien (nulle enregistrement ) no rows
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     select distinct 'produit' as pr
     , sum(s17.nombre) as "nbr 2017"
     , sum(s17.total_paye) as "mnt 2017"
     , sum(s18.nombre) as "nbr 2018" 
     , sum(s18.total_paye) as "mnt 2018" 
     , to_char(((1-sum(s17.nombre)/sum(s18.nombre))*100 ),'S9999D99')||'%' as "nbr %" 
     , to_char(((1-sum(s17.total_paye)/sum(s18.total_paye))*100),'S9999D99')||'%' as "mnt %"
     from recette_enr_sum_final_sysdate s18
     , recette_enr_sfinal_sysdate17 s17
     where s18.us_code_mere=s17.us_code_mere

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 610
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Plusieurs corrections et améliorations à apporter :
    • Pour faire une somme par produit, il manque une clause GROUP BY.
    • Pour faciliter la lecture, il est préférable de coder les jointures avec l'opérateur JOIN plutôt que dans le WHERE, la norme SQL a prévu cette améliOration depuis 1992 !
    • Faire des divisions sans s'assurer que le diviseur est différent de zéro est risqué, êtes vous certains que s18.nombre et s18.total_paye sont toujours > 0 ?

  3. #3
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Avril 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 23
    Par défaut
    j'ai visualiser les deux tables une seul table qu'est rempli l'autreest vide .
    la meme requette je l'ai executer en remplissant la 2eme table avec des donnée , ca marche

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 610
    Billets dans le blog
    10
    Par défaut
    Evidemment, c'est le principe même d'une jointure INNER : constituer l'intersection entre deux tables

    Or l'intersection de deux ensembles dont l'un est vide, est un ensemble... vide

    Si vous en êtes là, il serait bon de commencer par le commencement, à savoir la lecture des cours SQL et notamment des jointures que vous trouverez ici

    Citation Envoyé par 1227588 Voir le message
    j'ai visualiser les deux tables une seul table qu'est rempli l'autreest vide .
    la meme requette je l'ai executer en remplissant la 2eme table avec des donnée , ca marche
    Sans GROUP BY, ça m'étonnerait et n'oubliez pas de contrôler le diviseur avant de faire une division, sinon le plantage vous pend au nez...

  5. #5
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Sans GROUP BY, ça m'étonnerait et n'oubliez pas de contrôler le diviseur avant de faire une division, sinon le plantage vous pend au nez...
    Ici, "produit" est une chaine, donc une constante, group by n'est pas nécessaire.

  6. #6
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Avril 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 23
    Par défaut
    je me connais un peu en sql le probleme qui se pose que la tab 1 et vide par contre la 2eme table est remplis de donnee quant je fait la comparaison et comme vous le voyer sur mon script precedement inserer ,j'ai selectioner le nbr pour les deux table est ca me sort rien et apres je fait comparer l'evolution la ca me sort encore rien car la 1 ere table est vide comment je vais faire pour me sortir la comparaison au moins me sort les donnée de la 1ere table

    svp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBS]probleme ds comparaison de nombres
    Par zorba49 dans le forum VBScript
    Réponses: 9
    Dernier message: 24/05/2006, 16h43
  2. Problème script de chargement de données oracle
    Par nkongolo.m dans le forum Linux
    Réponses: 4
    Dernier message: 24/01/2006, 11h46
  3. [Dates] Probleme de comparaison de date
    Par mathieu77186 dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2005, 17h21
  4. Probleme de conception pour un update Oracle!
    Par vempiria dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/09/2005, 10h28
  5. [C#] Problème de récupération d'une procédure Oracle
    Par minnieBis dans le forum ASP.NET
    Réponses: 11
    Dernier message: 20/04/2004, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo