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 :

Convertir une requête Acces en MySQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut [RESOLU]Convertir une requête Acces en MySQL
    Bonjour à toutes & tous,

    Mon boulot vient d'installer mysql et je dois convertir nos applications qui fonctionnaient avec Access en MySQL.

    Je m'arrache les cheveux sur une requete Access qui marchait très très bien mais qui coince grave sur MySQL. La voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT FICHES_TRAVAIL.LOGIN, FICHES_TRAVAIL.Num_FT, FICHES_TRAVAIL.CD_MARCHE,  trim(FICHES_TRAVAIL.Lb_MARCHE & ' ' & PRECISER.PRECISION_Lb_MARCHE) as Libelle_MARCHE, FICHES_TRAVAIL.RETRAITEMENT, FICHES_TRAVAIL.PRECISIONS, FICHES_TRAVAIL.DATE_CREATION_FT, FICHES_TRAVAIL.DATE_FIN_CEC, FICHES_TRAVAIL.PERIODE_FIN_CEC, FICHES_TRAVAIL.DATE_FIN_CHG, FICHES_TRAVAIL.PERIODE_FIN_CHG, FICHES_TRAVAIL.DATE_REALISE_CEM, ASSOCIER_CLIENT.CODE_CLIENT, CLIENT.cli_lb_client, PRECISER.COMMENTAIRE_FICHE,  Sum(Choose([Tbl_UNITE_CHARGE]![Cd_UNIT_CHARGE],[DESTINER]![VAL_CHARGE],[DESTINER]![VAL_CHARGE]*60,[DESTINER]![VAL_CHARGE]*7*60)) AS POIDS_FT FROM ((FICHES_TRAVAIL INNER JOIN (CLIENT INNER JOIN ASSOCIER_CLIENT ON CLIENT.cli_cd_client = ASSOCIER_CLIENT.CODE_CLIENT)  ON (FICHES_TRAVAIL.Num_FT = ASSOCIER_CLIENT.Num_FT) AND (FICHES_TRAVAIL.LOGIN = ASSOCIER_CLIENT.LOGIN)) INNER JOIN ((CONTROLLO_INGRESSO  INNER JOIN DESTINER ON CONTROLLO_INGRESSO.LOGIN = DESTINER.CD_DESINATAIRE) INNER JOIN Tbl_UNITE_CHARGE ON DESTINER.UNITE_CHARGE =  Tbl_UNITE_CHARGE.UNIT_CHARGE) ON (FICHES_TRAVAIL.Num_FT = DESTINER.Num_FT) AND (FICHES_TRAVAIL.LOGIN = DESTINER.LOGIN)) LEFT JOIN PRECISER ON  (FICHES_TRAVAIL.Num_FT = PRECISER.Num_FT) AND (FICHES_TRAVAIL.LOGIN = PRECISER.LOGIN) WHERE (((ASSOCIER_CLIENT.CODE_CLIENT) >= 0)) AND FICHES_TRAVAIL.LOGIN='ABEAU' AND CONTROLLO_INGRESSO.CODE_UNIT='AL1' GROUP BY FICHES_TRAVAIL.LOGIN, FICHES_TRAVAIL.Num_FT, FICHES_TRAVAIL.CD_MARCHE, FICHES_TRAVAIL.Lb_MARCHE,  FICHES_TRAVAIL.RETRAITEMENT, FICHES_TRAVAIL.PRECISIONS, FICHES_TRAVAIL.DATE_CREATION_FT, FICHES_TRAVAIL.DATE_FIN_CEC,  FICHES_TRAVAIL.PERIODE_FIN_CEC, FICHES_TRAVAIL.DATE_FIN_CHG, FICHES_TRAVAIL.PERIODE_FIN_CHG, FICHES_TRAVAIL.DATE_REALISE_CEM, ASSOCIER_CLIENT.CODE_CLIENT, CLIENT.cli_lb_client, PRECISER.COMMENTAIRE_FICHE, PRECISER.PRECISION_Lb_MARCHE;
    Bon Ok elle est un peu mastoque mais bon ...

    Ca bloque au niveau du sum(choose(..)) au début.

    Quelqu'un peut il m'aider ?

    Merci d'avance

    Bonne journée

    Creepy


    FRANK

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je ne suis pas sûr, mais le caractère générérique * doit être propre à Access, essaye avec % qui est il me semble la norme. C'est tout ce que je vois au premier abord

    Starec

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Par défaut
    Les * utilisées ici sont des multipliés, pas de problème à ce niveau donc.

    Par contre je ne sais pas si la syntaxe [nom_table]![nom_colonne] est accepté...

    De plus, la fonction choose est-elle acceptée par MySQL?

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut RE everybody
    RE,

    Merci pour vos réponses.

    Effectivment je pense qu'il y a un souci au niveau de la commande choose qui est propre à Access.

    Par contre je ne connais pas son equivalence en Mysql !! ?? !! Si quelqu'un sait je suis preneur

    Merci d'avance

    bonne journée

    Creepy

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Par défaut
    Que fait cette fonction choose sous Access?

  6. #6
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut Choose ...
    Hello,

    La fonction Choose renvoie une valeurs parmi un choix de plussieurs.

    @+

    Creepy

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Par défaut
    OK mais quels sont les critères de sélection de la valeur retournée?
    La plus grande, la plus petites, autre...

  8. #8
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut Ma Requête SQL
    Bonjour,

    voici ce que fait cette ligne en francais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum(Choose([Tbl_UNITE_CHARGE]![Cd_UNIT_CHARGE],[DESTINER]![VAL_CHARGE],[DESTINER]![VAL_CHARGE]*60,[DESTINER]![VAL_CHARGE]*7*60)) AS POIDS_FT
    Fait la somme de(en fonction de la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ([Tbl_UNITE_CHARGE]![Cd_UNIT_CHARGE]
    soit de [DESTINER]![VAL_CHARGE], 
    soit de [DESTINER]![VAL_CHARGE]*60
    Soit de [DESTINER]![VAL_CHARGE]*7*60)
    Voila en fonction de la valeur de mon premier champ dans la fonction Choose, il renvoie vers la bonne valeur après.

    Par exemple si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Tbl_UNITE_CHARGE]![Cd_UNIT_CHARGE]= 3
    alors va faire la somme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [DESTINER]![VAL_CHARGE]*7*60
    , etc ...

    @+

    Creepy


    FRANK

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Par défaut
    Il va donc falloir que tu détails les actions comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select...,
    sum(
    case when Cd_UNIT_CHARGE = 3 then VAL_CHARGE*7*60
    when ....... end
    )
    from ....

  10. #10
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut RE all
    Un grand Merci à toi Mystro !

    La requête marche impecc

    Encore merci

    @+

    Creepy

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Par défaut
    De rien

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

Discussions similaires

  1. Convertir une requête d'Oracle vers MySQL
    Par iliass001 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 03/04/2013, 09h58
  2. Convertir une requête Mysql en T-SQL
    Par abdo1966 dans le forum Langage SQL
    Réponses: 0
    Dernier message: 26/11/2008, 14h33
  3. Parser une requête SQL pour MySQL
    Par gassla dans le forum SGBD
    Réponses: 3
    Dernier message: 02/08/2006, 15h36
  4. [script]Convertir une BD .dbf en MySql
    Par ozzmax dans le forum Outils
    Réponses: 5
    Dernier message: 05/05/2006, 16h00
  5. Convertir une requête Access en MySQL
    Par iomega dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/03/2004, 09h47

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