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

Bases de données Delphi Discussion :

Requête SQL sur 03 tables


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Par défaut Requête SQL sur 03 tables
    Salut tout le monde, je voudrais s'avoir es possible d'optimiser ma requête SQL sur 03 tables volumineux, je travail avec delphi sur orable 8i et pl/sql
    Alors il y a :
    - Table1 : Identification de l'assuré local
    - Table2 : Identification de l'assuré National
    - Table3 : Identification de l'assuré Provisoire
    et voici le code SQL que j'utilise, je cherche la meilleure optimisation est les meilleurs proposition pour l'amélioré

    Code SQL : 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
    Select RowNum,'L' Base,substr(t.numassure||' '||cle(t.numassure),1,13) as NO_ASSURE,
    t.nom,t.prenom,t.naissance,t.codcentre,t.statut||''-''||t.position2 SP
    from linc.secu_ass t
    where t.codassure = hcode('CHEMIRIK'||'06051972')
    or (t.codassure = hcoding('CHEMIRIK'||'06051972')
    or t.numassure LIKE '721746%') -- c'est le numéro de l'assuré
    UNION Select RowNum,'N' Base,substr(t.numassure||' '||cle(t.numassure),1,13) as NO_ASSURE
    ,t.nom,t.prenom,t.naissance,t.codcentre,'**-**' SP
    from linc.secu_rin t
    where t.codassure = hcode('CHEMIRIK'||'06051972')
    or (t.codassure = hcoding('CHEMIRIK'||'06051972')
    or t.numassure LIKE '721746%')
    Union Select RowNum,'P' Base, substr(c.numassure||' '||cle(c.numassure),1,13) as NO_ASSURE
    ,c.nom, c.prenom,c.Naissance,c.codcentre CENTRE, '**-**' SP
    from  linc.secu_RIP c where (c.Nom ='CHEMIRIK'+'and c.Naissance='06051972')
    or c.numassure LIKE '721746%
    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 591
    Par défaut
    Bonjour,

    Il serait bien de respecter les règles du forum.

    • Présenter les tables qui sont mises en oeuvre ;
    • Présenter le résultat qui est souhaité ;
    • Présenter les requêtes en SQL et non sous la forme incluse dans Delphi.


    Dans l'état actuel, je n'ai fait aucune analyse pour répondre à ta demande. Avec de la chance, tu trouveras peut être une personne courageuse.

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Par défaut
    Salut tous le monde, je suis désolé j'ai modifier ma requête

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Bonsoir,

    Je pense que seabs parlait également de la structure de tes tables. En effet ici on ne sait pas quels sont les champs primaires par exemple, ni leur type (string, date...)

    Ta demande ne devrais pas se trouver ici, c'est une demande de requête pure non lié à Delphi

    Sinon est-ce que Orcale 8i accepte les Case WHEN ?, sinon c’est difficilement optimisable.

    Peut-être en passant par une table temporaire que tu alimente avec les trois requête et ensuite tu traite la table temporaire ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Par défaut
    Bonjour, les tables sont en STRING, les champs sont des informations sur chaque assuré or : numassure, Nom, Prenom, Naissance, centre, blocage, statut, position, date_embauche, date_sortie,....

    en ce qui concerne case when n'est pas accepter par oracle 8i, merci pour votre aide

Discussions similaires

  1. [SQL] Problème avec script de pagination et requête sql sur deux tables
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 15h06
  2. problème de requête SQL sur 3 tables pour un while
    Par carmen256 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/04/2006, 17h55
  3. requêtes sql sur plusieurs tables
    Par zahiton dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/11/2005, 11h59
  4. [SQL] requêtes SQL sur plusieurs tables
    Par zahiton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/11/2005, 17h32
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 17h26

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