Publicité
+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 36 sur 36
  1. #21
    Expert Confirmé

    Homme Profil pro Philippe Makowski
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Makowski
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 301
    Points : 3 660
    Points
    3 660

    Par défaut

    Citation Envoyé par lepatantpato Voir le message
    Je joins la requête
    essayer :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT DISTINCT  
    ETAT.NUMERO ,  
    ETAT.PRODUIT_ID,
    PFOURNISSEUR.CODE,
    PRODUIT.DESIGNATION,
    SORTIE.DLU,
    FOURNISSEUR.NOM, 
    SORTIE.DATE
     
    FROM  ETAT JOIN PFOURNISSEUR ON  
    JOIN PRODUIT ON ETAT.PRODUIT_ID=PRODUIT.PRODUIT_ID
    JOIN SORTIE ON  SORTIE.NUMERO=ETAT.NUMERO 
    JOIN FOURNISSEUR ON ETAT.FOURNISSEUR_ID=FOURNISSEUR.FOURNISSEUR_ID
    LEFT JOIN FIN ON ETAT.NUMERO =  FIN.NUMERO
    WHERE  PFOURNISSEUR.CODE IN   ('125500','789120','997788','123789')
    AND ETAT.NUMERO  IS NULL
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  2. #22
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut heu...

    Heu, finalement, qu'est-ce que je dois faire ?

    A
    exit
    B
    quit
    C
    commit
    quit
    D commit
    exit
    E
    Adieu camarade
    la bonne réponse est ?

    Lépatantpato

  3. #23
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut houla !

    A P.Makowski

    Avec ton code, ma requête passe de 8 secondes à... 0 seconde ! Merci; c'est vraiment top.
    Cdt
    LépatantPato

  4. #24
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut snif...

    Bonjour à tous
    et en particulier à P. Makowski

    Je nage en plein mystère.... Ton code qui , hier, corrigeait le mien était parfait, et me convenait très bien. Mais aujourd'hui je rencontre avec le même code un problème que je ne comprends pas:
    L'erreur rencontrée est : Token unknown à la ligne 11, JOIN.
    Je ne comprends pas l'erreur, d'autant plus que cela fonctionnait hier...
    Voyez-vous où se situe le problème ?
    (j'ai utilisé Flamerobin et isql).
    Merci
    Lépatantpato

  5. #25
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 091
    Points : 9 426
    Points
    9 426

    Par défaut

    Ligne 10 du code il manque la condition de jointure entre ETAT et PFOURNISSEUR . cela m'avait échappé déjà dans ma proposition de refonte avec des JOIN

    Code ligne 10 :
    FROM  ETAT JOIN PFOURNISSEUR ON  ETAT.FOURNISSEUR_ID= FOURNISSEUR.FOURNISSEUR_ID
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  6. #26
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut colonne inconnue !

    Merci SergioMaster!

    mais j'ai un message d'erreur sur la ligne 10
    Fournisseur.Fournisseur_ID : column unknown (et non token unknown, pour une fois). Or, bien entendu, cette colonne existe. Je suppose que l'erreur vient de plus bas, mais je ne vois toujours pas.
    Aucune référence au fichier Fournisseur n'est faite, d'ailleurs.
    La ligne 13 ressemble à la 10, mais bon, je suis perdu.
    Cdt
    LépatantPato

  7. #27
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 091
    Points : 9 426
    Points
    9 426

    Par défaut

    désolé , un mauvais copier coller
    La relation doit se faire sur la table PFOURNISSEUR et non FOURNISSEUR
    Maintenant quelle est cette relation entre les 2 ? y en a t'il une , pas facile de le déduire de ton sql de départ . En relisant attentivement ,je m’aperçois que c'est mon premier Copier/Coller qui a du a un moment (j'ai pour habitude de mettre une ligne par jointure , la jointure étant en début de ligne)

    Code ton SQL :
    1
    2
     
    AND PFOURNISSEUR.PRODUIT_ID=PRODUIT.PRODUIT_ID
    donc le join était en plus 'mal' placé

    avec l'amélioration de makowski (grand merci pour la leçon Quit vs Exit) cela donnerai

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    SELECT DISTINCT  
    ETAT.NUMERO ,  
    ETAT.PRODUIT_ID,
    PFOURNISSEUR.CODE,
    PRODUIT.DESIGNATION,
    SORTIE.DLU,
    FOURNISSEUR.NOM, 
    SORTIE.DATE
     
    FROM  ETAT  
    JOIN PRODUIT ON ETAT.PRODUIT_ID=PRODUIT.PRODUIT_ID
    JOIN PFOURNISSEUR ON PFOURNISSEUR.PRODUIT_ID=PRODUIT.PRODUIT_ID
    JOIN SORTIE ON  SORTIE.NUMERO=ETAT.NUMERO 
    JOIN FOURNISSEUR ON ETAT.FOURNISSEUR_ID=FOURNISSEUR.FOURNISSEUR_ID
    LEFT JOIN FIN ON ETAT.NUMERO =  FIN.NUMERO
    WHERE  PFOURNISSEUR.CODE IN   ('125500','789120','997788','123789')
    AND ETAT.NUMERO  IS NULL
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  8. #28
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut encore moi

    Bonjour
    J’ai apporté le correctif. Je n’ai plus de message d'erreur ! mais par contre aucun résultat.
    J’explique ici le but poursuivi, en essayant d’être clair, mais j’ai conscience de ne pas l’être tant que ça…
    En tout cas, merci de m’aider.
    Cdt.
    Lépatantpato

    En fait, dans mon code de départ :
    Mon but est d’extraire de ETAT tout NUMERO qui n’est pas dans FIN.
    18 WHERE ETAT.NUMERO NOT IN (SELECT FIN.NUMERO FROM FIN)

    Puis en ligne 19 j’ai le numéro du produit correspondant (dont je veux le nom, PRODUIT.DESIGNATION)
    19 AND ETAT.PRODUIT_ID=PRODUIT.PRODUIT_ID

    Ensuite, la ligne 20 me donne
    20 AND SORTIE.NUMERO=ETAT.NUMERO
    Le lien avec le fichier SORTIE me donne SORTIE.DATE et SORTIE.DLU

    La ligne 21
    21 AND PFOURNISSEUR.PRODUIT_ID=PRODUIT.PRODUIT_ID
    Donne le lien avec PFOURNISSEUR qui va permettre le critère utilisé en 23

    la ligne 22
    Donne le FOURNISSEUR dont je désire le nom, FOURNISSEUR.

    Et la ligne 23
    AND PFOURNISSEUR.CODE IN ('125500','789120','997788','123789');

    Permet de chercher les valeurs désirées.

  9. #29
    Expert Confirmé

    Homme Profil pro Philippe Makowski
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Makowski
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 301
    Points : 3 660
    Points
    3 660

    Par défaut

    Pardon j'avais mal lu et donc fait une grossière erreur

    c'est plutot quelque chose du genre de ce qui suit, ma première ne pouvait que ne rien renvoyer, sauf s'il y avait des valeurs null dans ETAT.NUMERO, ce qui n'était pas ce qui était recherché

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT DISTINCT  
    ETAT.NUMERO ,  
    ETAT.PRODUIT_ID,
    PFOURNISSEUR.CODE,
    PRODUIT.DESIGNATION,
    SORTIE.DLU,
    FOURNISSEUR.NOM, 
    SORTIE.DATE
     
    FROM  ETAT  
    JOIN PRODUIT ON ETAT.PRODUIT_ID=PRODUIT.PRODUIT_ID
    JOIN PFOURNISSEUR ON PFOURNISSEUR.PRODUIT_ID=PRODUIT.PRODUIT_ID
    JOIN SORTIE ON  SORTIE.NUMERO=ETAT.NUMERO 
    JOIN FOURNISSEUR ON ETAT.FOURNISSEUR_ID=FOURNISSEUR.FOURNISSEUR_ID
    WHERE  PFOURNISSEUR.CODE IN   ('125500','789120','997788','123789')
    AND NOT EXISTS (SELECT 1 FROM FIN WHERE ETAT.NUMERO = FIN.NUMERO)
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  10. #30
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut et encore merci

    à Philippe Makowski et SergioMaster et Barbibulle

    Merci.
    Tout marche ok
    et en plus, je crois avoir compris !
    cdt
    LépatantPato

  11. #31
    Expert Confirmé

    Homme Profil pro Philippe Makowski
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Makowski
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 301
    Points : 3 660
    Points
    3 660

    Par défaut

    Citation Envoyé par SergioMaster Voir le message
    un Backup fait un sweep donc ....

    non
    un backup avec gbak sans l'option -g parcours tous les enregistrements et déclenche donc un garbage collect, qui n'est pas exactement la même chose qu'un sweep
    un sweep fait un peu plus que seulement le garbage collect
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  12. #32
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut Précision

    Bonjour à tous
    2 choses:
    - 1 j'avais indiqué que la vitesse d'accès à ma base était très rapide, mais en fait je m'étais trompé
    - 2 ma requête modifiée par PM fonctionne très bien, mais la durée de traitement, par rapport à la mienne, reste la même. Je suppose qu'il n'y a pas moyen de l'optimiser.

    Cdt
    Lépatantpato

  13. #33
    Expert Confirmé

    Homme Profil pro Philippe Makowski
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Makowski
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 301
    Points : 3 660
    Points
    3 660

    Par défaut

    Citation Envoyé par lepatantpato Voir le message
    - 2 ma requête modifiée par PM fonctionne très bien, mais la durée de traitement, par rapport à la mienne, reste la même. Je suppose qu'il n'y a pas moyen de l'optimiser.
    peut être que si
    mais cherchez ce qui n'existe pas est toujours pénible
    pour optimiser, il faudrait voir le plan d'abord et la structure des tables et des index
    c'est quoi la clé primaire de ETAT ?

    Citation Envoyé par lepatantpato Voir le message
    - 1 j'avais indiqué que la vitesse d'accès à ma base était très rapide, mais en fait je m'étais trompé
    ça veut dire quoi ça ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  14. #34
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 091
    Points : 9 426
    Points
    9 426

    Par défaut

    Citation Envoyé par makowski Voir le message
    un backup avec gbak sans l'option -g parcours tous les enregistrements et déclenche donc un garbage collect, qui n'est pas exactement la même chose qu'un sweep
    un sweep fait un peu plus que seulement le garbage collect
    ça m'apprendra a être simpliste

    pour continuer dans cette voie peut m'expliquer pourquoi il vaut mieux faire un Commit plutôt qu'un rollback après un Select ? bien qu'ayant une idée de la chose , j'aimerais confirmation
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  15. #35
    Expert Confirmé

    Homme Profil pro Philippe Makowski
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Makowski
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 301
    Points : 3 660
    Points
    3 660

    Par défaut

    pour ça le mieux est d'aller lire Pierre (http://www.ibphoenix.com/resources/d...search/doc_369)

    mais en vite fait, un commit coûte moins de ressources qu'un rollback
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  16. #36
    Nouveau Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 94
    Points : 27
    Points
    27

    Par défaut bonsoir

    Bonsoir tout le monde

    Pour répondre à PM :
    - Je ne crois pas qu'il y ait une clé primaire

    cdt
    Lépatantpato

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •