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

Langage SQL Discussion :

[Oracle] Requête sur 3 tables, sortie fichier


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut [Oracle] Requête sur 3 tables, sortie fichier
    Bonjour,

    J'ai trois tables:

    IR_NOEUD avec pour champs: ID NOEUD, AGL, SITE et POINT.
    IR_PRODUIT: IDNOEUDA et IDNOEUDB
    IR_EQPT: IDNOEUD, POINT et FAMEQPT

    J'aimerai sélectionner les noeuds (IDNOEUD de IR_NOEUD) qui ne sont ni dans IDNOEUDA, ni dans IDNOEUDB mais qui sont par contre dans le champ IDNOEUD de IR_EQPT. Pour ces noeuds, j'aimerai afficher le point et la famille d'equipement (FAMEQPT).

    Pour la première partie de la requête, une personne du forum m'a aidé mais c'est l'affichage de FAMEQPT qui pose problème. En effet il m'affiche tous les equipements de la table.

    select distinct IR_NOEUD.POINT, FAMEQPT
    from IR_NOEUD, IR_EQPT
    where (IR_NOEUD.IDNOEUD not in (select IDNOEUDA from IR_PRODUIT) and IR_NOEUD.IDNOEUD not in (select IDNOEUDB from IR_PRODUIT) and IR_NOEUD.IDNOEUD in (select IDNOEUD from IR_EQPT));

    J'aimerai aussi mettre le résultat dans un fichier excel.

    Pouvez-vous m'aider svp ?

  2. #2
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Finalement j'ai réussi en la modifiant comme suit:

    select distinct IR_NOEUD.POINT, FAMEQPT
    from IR_NOEUD, IR_EQPT
    where (IR_NOEUD.IDNOEUD not in (select IDNOEUDA from IR_PRODUIT) and IR_NOEUD.IDNOEUD not in (select IDNOEUDB from IR_PRODUIT) and IR_NOEUD.IDNOEUD in IR_EQPT.IDNOEUD);

    Par contre je ne sais pas comment mettre le résultat dans un fichier excel.

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    regarde du coté de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * into outfile ...
    je l'ai déja utilisé pour exporter vers des fichiers texte mais pour excel à tester

    bon courage

    Michel

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Quelle est la syntaxe exacte si je veux un fichier nommé noeud.txt ?

    J'ai écrit à la suite:

    select * into outfile 'noeud.txt';

    Et il m'indique qu'il manque un mot clé.

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    une petite recherche sur le forum te donnera la solution à mon avis

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    C'est ce que je fais depuis hier mais je ne trouve nulle part des indications.

    Ca doit être bien caché

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select distinct IR_NOEUD.POINT, FAMEQPT into outfile 'chemin.test.txt'
    from IR_NOEUD, IR_EQPT 
    where (IR_NOEUD.IDNOEUD not in (select IDNOEUDA from IR_PRODUIT) and IR_NOEUD.IDNOEUD not in (select IDNOEUDB from IR_PRODUIT) and IR_NOEUD.IDNOEUD in IR_EQPT.IDNOEUD);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * into outfile 'noeud.txt'
    Tu sélectionnes rien ici

    Et au niveau recherche avancé si tu tapes 'outfile' cela métonnerai que le sujet n'est jamais été traité

    Bon courage

    Michel

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Et pourtant !

    Si tu recherches par le mot "outfile", tu verras que ça n'a jamais été abordé.

  9. #9
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281

  10. #10
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    lol je t'assure que j'avais pourtant rien trouvé !

    Par contre je ne vois tjs pas comment l'appliquer dans mon cas

  11. #11
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    cela ne marche pas la requete que je tai donné?

  12. #12
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Citation Envoyé par Cybher
    http://www.developpez.net/forums/viewtopic.php?t=136653&highlight=outfile
    Attention, la redirection vers un fichier n'a rien à voir avec du SQL, et le lien que tu donnes appartyient au forum MySQL.

    Syntaxe oracle :
    http://www.developpez.net/forums/vie...ighlight=spool
    (Oui, ç'est dans le forum InterBase, mais c'était encore dans ce forum il y a peu ...)
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  13. #13
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Je ne sais pas où il faut que je mette select * into outfile 'noeud.txt'

    à la suite cela me met qu'il manque un mot clé

    en fait je ne sais pas comment utiliser cette fonction

  14. #14
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Attention, la redirection vers un fichier n'a rien à voir avec du SQL, et le lien que tu donnes appartyient au forum MySQL.
    Tout a fait exact cest lhabitude daller sur le forum MySQL

    Quel SGBD?

  15. #15
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Euh ... aucune idée

    C'est la base de données de mon entreprise. Comment savoir de quel SGBD il s'agit ?

    Je crois que c'est simplement SQL.

  16. #16
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    SQL est un langage

    SGBD possible : MySQL, Postgré, Oracle, SQL Server, Firebird...

  17. #17
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Je crois que c'est ORACLE car il y a un utilitaire nommé SQL plus. J'ai cherché sur google et ça serait pour oracle.

  18. #18
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Ca y est c'est bon, merci !

    Effectivement c'est Oracle:

    SPOOL noeud.txt
    SET ECHO ON
    SET SERVEROUTPUT ON SIZE 1000000
    select distinct IR_NOEUD.POINT, FAMEQPT
    from IR_NOEUD, IR_EQPT
    where (IR_NOEUD.IDNOEUD not in (select IDNOEUDA from IR_PRODUIT) and IR_NOEUD.IDNOEUD not in (select IDNOEUDB from IR_PRODUIT) and IR_NOEUD.IDNOEUD in IR_EQPT.IDNOEUD)
    SPOOl OFF;

    Par contre comment mettre en forme le résultat ? Toutes les 10 lignes environ il me remet les noms des champs. J'aimerai que tout soit à la suite. Ou encore mieux si c'est possible: qu'il y ait une ligne d'écart entre deux noeuds différents, par ex:

    AAA
    AAA

    BBB

    CCC

  19. #19
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    utilise la fonction SET PAGESIZE

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SPOOL noeud.txt 
    SET ECHO ON 
    SET PAGESIZE 500
    SET SERVEROUTPUT ON SIZE 1000000 
    select distinct IR_NOEUD.POINT, FAMEQPT 
    from IR_NOEUD, IR_EQPT 
    where (IR_NOEUD.IDNOEUD not in (select IDNOEUDA from IR_PRODUIT) and IR_NOEUD.IDNOEUD not in (select IDNOEUDB from IR_PRODUIT) and IR_NOEUD.IDNOEUD in IR_EQPT.IDNOEUD) 
    SPOOl OFF;
    Bon courage

  20. #20
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Par défaut
    Citation Envoyé par Yanika_bzh
    utilise la fonction SET PAGESIZE

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SPOOL noeud.txt 
    SET ECHO ON 
    SET PAGESIZE 500
    SET SERVEROUTPUT ON SIZE 1000000 
    select distinct IR_NOEUD.POINT, FAMEQPT 
    from IR_NOEUD, IR_EQPT 
    where (IR_NOEUD.IDNOEUD not in (select IDNOEUDA from IR_PRODUIT) and IR_NOEUD.IDNOEUD not in (select IDNOEUDB from IR_PRODUIT) and IR_NOEUD.IDNOEUD in IR_EQPT.IDNOEUD) 
    SPOOl OFF;
    Bon courage
    Merci ! L'affichage est plus plaisant. Est-il possible d'avoir une ligne qui sépare deux noeuds différents ?

    Par contre le fichier texte n'est pas top. Il n'y a pas d'alignement. Ca se décale vers la droite puis ça revient tout à gauche etc ...

    Finalement j'ai rien dit ! Lorsque j'ouvre le fichier texte avec excel, il n'y a aucun problème. Merci !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/01/2007, 22h03
  2. [VB6] RecordSet, Oracle, requête sur plusieurs Tables
    Par pier* dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/04/2006, 11h19
  3. Requête sur plusieurs tables
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 13h25
  4. Requête sur 2 tables ?
    Par kibodio dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/03/2005, 16h57
  5. Requête sur 2 tables et surtout novice...
    Par kibodio dans le forum Langage SQL
    Réponses: 13
    Dernier message: 03/03/2005, 16h45

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