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

Requêtes et SQL. Discussion :

Problème de requête SQL avec instruction TRANSFORM


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Problème de requête SQL avec instruction TRANSFORM
    Bonjour,

    j'ai de la difficulté à exécuté une requête dans une application de autre
    programmeur que je doit réparer.

    Cette application créé un rapport qui donne mon nombre de cd originaux créé pour chaque client, par mois, mais ne fais pas de distinction pour l'année. J'ai donc un cumul de toutes les années de l'application. L'utilisateur entre la date de l'année qu'il veut le rapport dans un formulaire.

    J'ai du code comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM Sum(CDR.cdr_original) AS [La valeur]
    SELECT CDR.client, Sum(CDR.cdr_original) AS [Total de cdr_original]
    FROM CDR
    GROUP BY CDR.client
    PIVOT Month([date]);
    Ce que j'aimerais faire c'est d'ajouter une ligne ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (Year([CDR].[date])=(Year([Forms]![frm_Rapport_general]![txtDateDebut])))
    qui me permettrait de sortir les enregistrements ayant seulement la même année de création que la date que l'utilisateur entre dans le formulaire.

    Je crois que c'est un problème au niveau de l'instruction TRANSFORM qui ne permettrait pas l'instruction WHERE mais plutot HAVING. J'ai essayé cette technique aussi et elle n'a pas été fructueuse plus que l'autre!

    Merci de votre aide!

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    mets toi en mode création de reqûete
    affichage sql
    copie ta requete dans la fenetre après avoir effacé le ;
    repasse en affichage création
    ajoute tes critères
    tu obtiens ton sql
    Elle est pas belle la vie ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    J'avais déjà fais ça, mais a chaque fois ca me donne l'erreur suivante:

    Le moteur de la base de donnée Microsoft Jet ne reconnaît pas '[Forms]![frm_Rapport_general]![txtDateDebut]' en tant que nom de champ ou expression correcte.

    Et, oui le champ existe, il n'y a aucune faute au niveau de l'ortographe.

    Quand Je fais tout simplement un SELECT, FROM et WHERE avec cette condition ca me donne le bon résultat mais sans somme ni ordre. Donc ce n'est pas un problème avec le WHERE mais peut-être avec le TRANSFORM, GROUP BY et PIVOT?

    Merci

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Si la requête Select ..... From ......where marche tu y ajoute les opérations de regoupement et de somme que tu veux. Ce la remplace l'instruction Transform
    Amicalement

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Merci pour ta solution, j'ai trouvé quelque chose selon moi plus simple, le gars qui avait programmer ceci avait créé une table qui donnait l'année du rapport, alors j'ai utilisé ca avec un select imbriqué. En fait c'est peut-être pas plus simple mais les utilisateurs/administrateurs voulait garder le TRANSFORM. Pourquoi??? l'habitude surment!

    Alors j'ai fais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TRANSFORM Sum([CDR].[cdr_original]) AS [La valeur]
    SELECT [CDR].[client], Sum([CDR].[cdr_original]) AS [Total de cdr_original]
    FROM CDR
    WHERE ((Year([CDR].[date])) In (SELECT [dateannee] FROM [dateRapport] WHERE [dateRapport].[dateannee]))
    GROUP BY [CDR].[client]
    PIVOT Month([CDR].[date]);
    Merci beaucoup pour votre aide!

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

Discussions similaires

  1. problème de requête sql avec c#
    Par majduuus dans le forum C#
    Réponses: 7
    Dernier message: 07/09/2013, 00h35
  2. Problème exécution requête SQL avec HSQLDB
    Par montis dans le forum JDBC
    Réponses: 1
    Dernier message: 23/03/2012, 09h37
  3. Problème de requête SQL avec Firebird ?
    Par MaTHieU_ dans le forum SQL
    Réponses: 3
    Dernier message: 18/09/2008, 09h23
  4. Réponses: 2
    Dernier message: 07/02/2008, 11h45
  5. Problème de requête SQL avec DISTINCT et COUNT ?
    Par [ZiP] dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/01/2007, 17h11

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