Importer données d'une base de données

Signaler
-
Messages postés
16462
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 août 2021
-
Bonjour,

J'ai un code qui me permet d'importer un jeu de données qui fonctionne bien. Cependant dans mon jeu de données j'ai 3 patients différents et j'aimerais importer que le patient qui m'intéresse (possible en rajoutant l'instruction WHERE dans la requête SQL.
Du coup le code suivant fonctionne :


def importecdata():
query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID], TECDATA.[DateTime], MEDDATA.[Cardiac Frequency] FROM TECDATA INNER JOIN MEDDATA ON TECDATA.DateTime = MEDDATA.DateTime WHERE TECDATA.[SUBJID]='patient14';"
dftec1 = pd.read_sql(query2, sql_conn, chunksize=100000)
dftec = pd.concat(dftec1)
return(dftec)


Il me retourne bien les données du patient 14
Et du coup je voulais mettre le nom du patient en variable dans ma fonction donc j'ai fait le code suivant :


def importecdata(patient):
query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID], TECDATA.[DateTime], MEDDATA.[Cardiac Frequency] FROM TECDATA INNER JOIN MEDDATA ON TECDATA.DateTime = MEDDATA.DateTime WHERE TECDATA.[SUBJID]=patient;"
dftec1 = pd.read_sql(query2, sql_conn, chunksize=100000)
dftec = pd.concat(dftec1)
return(dftec)


Sachant que la variable patient récupère bien la valeur patient14 j'ai vérifié et ça ne fonctionne pas je comprends pas... j'ai essayé de modifier la valeur en 'patient14' avec les guillemets et j'ai toujours la même erreur :
Nom de colonne non valide\xa0: 'patient'
Configuration: Windows / Firefox 87.0

1 réponse

Messages postés
16462
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 août 2021
883
bonjour,
je suggère que tu fasses
print(query2)
, je pense que cela t'aidera à comprendre.
Bonjour, je viens d'essayer et justement l'erreur est au niveau du query2 (du WHERE plus exactement) donc impossible de l'afficher malheureusement...
Messages postés
16462
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 août 2021
883 > nbl335
as-tu essayé?
def importecdata(patient):
    query2 = "SELECT TECDATA.[Vol_Recalage_US_VD], TECDATA.[Vol_Recalage_Us_VG], TECDATA.[SUBJID], TECDATA.[DateTime],  MEDDATA.[Cardiac Frequency] FROM TECDATA  INNER JOIN MEDDATA ON TECDATA.DateTime = MEDDATA.DateTime WHERE TECDATA.[SUBJID]=patient;"
    print(query2)
    dftec1 = pd.read_sql(query2, sql_conn, chunksize=100000)
    dftec = pd.concat(dftec1)
    return(dftec)