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

Python Discussion :

where a partir d'une liste [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2020
    Messages : 67
    Par défaut where a partir d'une liste
    Bonjour,

    j'ai deux bases l'une PROPRIETAIRES.db ayant une table Table_Proprietaires et l'autre CONTRATS.db ayant une table Table_Contrat

    je cherche à sélectionner les PROPRIETAIRES ayant contracter un contrat cad les PROPRIETAIRES dont l'Id se trouve dans contract

    j'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                   ConnexionBaseContractant =sqlite3.connect(os.path.abspath('BASE_DE_DONNEES/PROPRIETAIRES.db'))
                   CurseurTableContractant=ConnexionBaseContractant.cursor()
     
                   ConnexionBaseContrats =sqlite3.connect(os.path.abspath('BASE_DE_DONNEES/CONTRATS.db'))
                   CurseurTableContrats=ConnexionBaseContrats.cursor()
     
     
     
                   ReqSelPersonneContractante=('SELECT Id_Pro,Nom_Pro,Prenom_Pro FROM Table_Proprietaires WHERE \
                                                                 Civilite_Pro!="Société"  and Id_Pro IN  (SELECT Id_Proprietaire FROM Table_Contrat)\
                                                                 ORDER BY Nom_Pro')
     
                   CurseurTableContractant.execute(ReqSelPersonneContractante).rowcount
    j'ai un message d'erreur "no such table: Table_Contrats"

    j'ai essayé de contourner le problème en faisant ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                   ReqSelContractant='SELECT DISTINCT Id_Proprietaire FROM Table_Contrats'
     
     
                   Liste=[]
     
                   for row in CurseurTableContrats.execute(ReqSelContractant ):
                       Liste.append(row[0])
     
                    ReqSelPersonneContractante=('SELECT Id_Pro,Nom_Pro,Prenom_Pro FROM Table_Proprietaires WHERE  
                                                                Civilite_Pro!="Société"  and Id_Pro IN ?\
                                                                  ORDER BY Nom_Pro')
     
                    CurseurTableContractant.execute(ReqSelPersonneContractante,(Liste,)).rowcount
    la aussi j'ai une erreur
    sqlite3.OperationalError: near "?": syntax error

    est ce possible de me dire ou est l’erreur dans le premier ou deuxième cas
    merci d'avance

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par THCH66 Voir le message
    je cherche à sélectionner les PROPRIETAIRES ayant contracter un contrat cad les PROPRIETAIRES dont l'Id se trouve dans contract
    Impossible, le requêtage inter-base n'existe pas.

    Citation Envoyé par THCH66 Voir le message
    j'ai un message d'erreur "no such table: Table_Contrats"
    Ben voilà.

    Citation Envoyé par THCH66 Voir le message
    j'ai essayé de contourner le problème en faisant ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Liste=[]
    for row in CurseurTableContrats.execute(ReqSelContractant ):
    	Liste.append(row[0])
    Liste=tuple(x[0] for x in CurseurTableContrats.execute(ReqSelContractant)). Et si tu pouvais éviter de créer des variables ressemblant à des mots clefs Python (Liste/list)...

    Citation Envoyé par THCH66 Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ReqSelPersonneContractante=('SELECT Id_Pro,Nom_Pro,Prenom_Pro FROM Table_Proprietaires WHERE  
                                                                Civilite_Pro!="Société"  and Id_Pro IN ?\
                                                                  ORDER BY Nom_Pro')
     
                    CurseurTableContractant.execute(ReqSelPersonneContractante,(Liste,)).rowcount
    la aussi j'ai une erreur
    sqlite3.OperationalError: near "?": syntax error
    ReqSelPersonneContractante='SELECT Id_Pro,Nom_Pro,Prenom_Pro FROM Table_Proprietaires WHERE Civilite_Pro!="Société" and Id_Pro IN (%s) ORDER BY Nom_Pro' % ", ".join(map(str, Liste))
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2020
    Messages : 67
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Impossible, le requêtage inter-base n'existe pas.


    Ben voilà.



    Liste=tuple(x[0] for x in CurseurTableContrats.execute(ReqSelContractant)). Et si tu pouvais éviter de créer des variables ressemblant à des mots clefs Python (Liste/list)...



    ReqSelPersonneContractante='SELECT Id_Pro,Nom_Pro,Prenom_Pro FROM Table_Proprietaires WHERE Civilite_Pro!="Société" and Id_Pro IN (%s) ORDER BY Nom_Pro' % ", ".join(map(str, Liste))
    merci c'est ce que je cherche

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

Discussions similaires

  1. Nouveau "recordset" a partir d'une liste !!!
    Par AngelsGuardian dans le forum Access
    Réponses: 1
    Dernier message: 01/11/2005, 20h46
  2. Réponses: 32
    Dernier message: 22/09/2005, 10h40
  3. Réponses: 3
    Dernier message: 19/05/2005, 17h52
  4. Réponses: 3
    Dernier message: 25/04/2005, 15h26
  5. Trouver equation à partir d'une liste de points
    Par scarabee dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/05/2004, 17h05

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