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

MySQL Discussion :

Traduire des instructions Mysql en Access ?


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Par défaut Traduire des instructions Mysql en Access ?
    Hello, je suis plutôt débutant en base de données .

    Une amie m' a demandé de l' aider pour un travail de db qu' elle fait en cours, sauf que le problème est que son travail est sur Access. Je me débrouille en Mysql mais je ne connais pas du tout l' environnement de Access.

    Du coup j' ai exporté sa db Access et je l' ai importée en Mysql. Jusque là pas de problèmes. J' ai écris des requêtes SQL ( Mysql ) et je pensais pouvoir les utiliser facilement dans Access. Mais Erreur, cela ne semble pas être aussi simple.

    Du coup je voudrais savoir comment traduire une requête Mysql en Access.

    Voici un exemple de requête ( Malheureusement lorsqu'elle a créé sa db elle a utilisé des tonnes de caractères spéciaux et d' espaces ... ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -- Num chauffeur, nom, prénom + total km parcouru
     
    select `chauffeurs`.`N°` as `Numero du chauffeur`,
    	 `chauffeurs`.`Nom` as `Nom chauffeur`,
             `chauffeurs`.`Prénom` as `Prenom chauffeur`,
             sum(`feuilles de route de sortie`.`DistanceKms`)
     
    from `chauffeurs`
    	left join `feuilles de route de sortie` on `chauffeurs`.`Certificat d'immatriculation` = `feuilles de route de sortie`.`Certificat d'immatriculation`
     
    group by `chauffeurs`.`N°`
    ;
    Merci à vous .

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 654
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Communiquez une requête qui fonctionne dans MySQL et ne fonctionne pas dans Access avec le message d'erreur complet sous Access

    A votre place, je renommerai les tables et les colonnes pour supprimer les accents et autres caractères spéciaux, ça vous simplifiera grandement la vie

    Edit : en tout cas la requete que vous avez postée n'est pas valide en SQL standard, car le groupage n'est pas cohérent avec la sélection
    MySQL tolère cette syntaxe mais restitue pour les colonnes non groupées l'une des valeurs possibles (résultat imprévisible)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Par défaut
    Bah en fait le group by est là pour pouvoir afficher la somme des distances parcourrue pour chaque identifiant de chauffeur :/.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 654
    Billets dans le blog
    10
    Par défaut
    Certes, mais la syntaxe correcte pour un group by est soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select `chauffeurs`.`N°` as `Numero du chauffeur`,
           `chauffeurs`.`Nom` as `Nom chauffeur`,
           `chauffeurs`.`Prénom` as `Prenom chauffeur`,
            sum(`feuilles de route de sortie`.`DistanceKms`)
     from `chauffeurs`
     left join `feuilles de route de sortie` on `chauffeurs`.`Certificat d'immatriculation` = `feuilles de route de sortie`.`Certificat d'immatriculation`
     group by `chauffeurs`.`N°`, `chauffeurs`.`Nom', `chauffeurs`.`Prénom`
    Soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select `chauffeurs`.`N°` as `Numero du chauffeur`
            sum(`feuilles de route de sortie`.`DistanceKms`)
     from `chauffeurs`
     left join `feuilles de route de sortie` on `chauffeurs`.`Certificat d'immatriculation` = `feuilles de route de sortie`.`Certificat d'immatriculation`
     group by `chauffeurs`.`N°`
    Les colonnes du Select doivent être cohérentes avec le group by
    MySQL accepte votre syntaxe, mais le contenu des colonnes du select qui ne sont pas dans le group by est aléatoire, et cette syntaxe ne sera pas portable sur un autre SGBD

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Par défaut
    Effectivement cela fonctionne. On m' a appris à faire comme ça en cours pourtant . Je vais essayer de voir avec d' autres requêtes plus complexes si j' y arrive aussi. Si j' ai d' autres soucis je les posterai.

    En tout cas merci beaucoup pour l' aide apportée !

    Edit : Au sujet du changement du nom des tables, malheureusement je ne peux pas modifier la structure de la db qu' elle m' a donné car elle a déjà été partagée entre différentes personnes de son groupe ...

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Par défaut
    J' ai un soucis avec une autre requête dans Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select  `feuilles de route de sortie`.`DateDépart`,
        count(`N° feuille de route`)
    from `feuilles de route de sortie`
    group by `feuilles de route de sortie`.`DateDépart`
    having `feuilles de route de sortie`.`DateDépart` between 01/10/2015 and 31/10/2015
    order by `feuilles de route de sortie`.`DateDépart` ASC
    ;
    Cela devrait me donner le total de feuille de route pour chaque date. Jusque là ça fonctionne.
    Par contre tout ce qui touche à la date ne fonctionne pas. En gros cela affiche toutes les dates et pas seulement celles du mois d' octobre. Le order by fonctionne pour les jours mais ne tient pas compte des mois.
    La date est bien en format date pourtant :/.

    Edit : Apparament c' était bien un soucis de format ... J' ai repassé ça en date et maintenant la requête n' affiche rien du tout.
    Peut-être faut il faire quelque chose d' autre que simplement passer le format de texte à date dans ces cas là ? PhpMyAdmin par exemple aurait sans doute réinitialisé tout le contenu de cette colonne et demandé de réinsérer toutes les dates ...

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 654
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Ishiru Voir le message
    Effectivement cela fonctionne. On m' a appris à faire comme ça en cours pourtant .
    Et bien allez tirer les oreilles à votre professeur de ma part

    Citation Envoyé par Ishiru Voir le message
    Edit : Au sujet du changement du nom des tables, malheureusement je ne peux pas modifier la structure de la db qu' elle m' a donné car elle a déjà été partagée entre différentes personnes de son groupe ...
    La bonne démarche est de faire valider la qualité d'un logiciel, avant de le diffuser largement et de répandre ainsi la misère partout !
    Suggérez, à votre fournisseur de faire les corrections nécessaires lors d'une prochaine évolution, à commencer par les colonnes définies en texte alors qu'elles contiennent des dates c'est une véritable hérésie de définir des colonnes ainsi, et ça coute très cher au quotidien : requêtes alambiquées qui pénalisent les performances et rendent la maintenance difficile, et résultats non maitrisés
    A fuir comme la peste !
    Non finalement ne suggérez rien, exigez

Discussions similaires

  1. [AC-2010] Lier des tables MySQL dans Access
    Par dgruson dans le forum VBA Access
    Réponses: 5
    Dernier message: 12/08/2012, 09h11
  2. [AC-2003] Lier des Vues MySql dans Access via ODBC
    Par njac74 dans le forum Modélisation
    Réponses: 1
    Dernier message: 12/05/2009, 17h36
  3. Importer directement des instructions MySQL en fichier texte dans MySQL
    Par lightstring4 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/05/2007, 16h39
  4. Mysql : comment conditionner des instructions ?
    Par hugo123 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 10/04/2007, 13h16
  5. [WD55] Migration des données HF vers MySQL ou Access
    Par developper2006 dans le forum WinDev
    Réponses: 1
    Dernier message: 21/02/2007, 13h31

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