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 :

Débutant Adaptation Requête à Excel


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Débutant Adaptation Requête à Excel
    Bonjour à toutes et a tous!

    Voici mon premier post sur ce forum. Je m'en suis souvent servi pour mes petits soucis de VBA et je tenais à vous remercier pour l'aide apportée aux gens qui essayent de progresser en la matière.

    La j'ai un vrai gros souci, j'ai rencontré quelqu'un qui m'a écrit une requête pour faire une historisation dans Excel. Le problème est qu'il n'a pas eu le temps de me dire comment l'adapter à excel et encore moins la mettre en place.

    C'est pour cela que je viens vers vous. Vous trouverez dans mon fichier excel ci-joint trois états (mars avril mai) de la même feuille avec des changements listés sur un onglet "changement"

    La SQL a été écrite sur la base de cet exemple.

    En fin de tableau j'ai créé des clés utilisées dans la requête voici la requête et son explication

    Voici une requête union (qui réunit 3 requêtes en une seule) pour faire apparaître les changements d’un mois M et d’un mois M-1
    Cette requête retourne 1 seule ligne par changement effectif. Par exemple les quatre lignes du mois de mars disparues en avril et qui sont identiques, n’en feront en fait, qu’une seule. (cf PJ)

    Les deux premières requêtes (ajout et suppression) compare les iRules Descriptions en s’appuyant sur les Brand Familly C et une relation de 1 à plusieurs sur iRule Description.
    Elles sont identiques (à un poil près) à part que M devient M-1 et M-1 devient M

    La troisème ne fait qu’une comparaison textuelles sur iRuleDescription en s’appuyant sur une relation de 1 à plusieurs sur CLEE
    Pour que la modification soit prise en compte, il faut que la clef soit la même dans M et M-1 mais le iRule description soit différent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ----------------------------------------Texte de la requête
    SELECT M.CLEE, M.[iRule Description], "added" AS State, DateAdd("m",-1,[M].[DateH]) AS [Date of change]
    FROM MAI AS M LEFT JOIN AVRIL AS [M-1] ON M.[iRule Description] = [M-1].[iRule Description]
    GROUP BY M.CLEE, M.[Brand Family C], M.[iRule Description], [M-1].[iRule Description], "added", DateAdd("m",-1,[M].[DateH])
    HAVING ((([M-1].[iRule Description]) Is Null))
    UNION
    SELECT [M-1].CLEE, [M-1].[iRule Description], "deleted " AS State, DateAdd("m",1,[M-1].[DateH]) AS [Date of change]
    FROM MARS AS [M-1] LEFT JOIN AVRIL AS M ON [M-1].[iRule Description] = M.[iRule Description]
    GROUP BY [M-1].CLEE, [M-1].[iRule Description], "deleted ", DateAdd("m",1,[M-1].[DateH]), [M-1].[Brand Family C], M.[iRule Description]
    HAVING (((M.[iRule Description]) Is Null))
    UNION
    SELECT [M-1].CLEE, [M-1].[iRule Description], "modified " AS State, [M-1].DateH AS [Date of change]
    FROM MARS AS [M-1] LEFT JOIN AVRIL AS M ON [M-1].CLEE = M.CLEE
    GROUP BY [M-1].CLEE, [M-1].[iRule Description], "Modified ", [M-1].DateH, M.[iRule Description], M.CLEE
    HAVING (((M.[iRule Description])<>[M-1].[iRule Description]));
    Voila alors si cela parle à quelqu'un ça serait vraiment génial parce que je suis vraiment bloqué bloqué !

    Merci d'avance pour ceux qui se pencheront sur mon cas!! :0

    Saimon

    PS: quant à la mise en place, c'est un autre problème !!
    Fichiers attachés Fichiers attachés

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Etape 1 du probleme
    En fait, dans un premier temps j'aimerai savoir s'il n'y a pas d'erreur dans la synthaxe.
    Ensuite j'aimerai connaitre le moyen de la tester dans excel. Je viens de lire qu'il faut remplacer les noms de tables (ex: MAI) par le nom de de feuille de la maniere suivante:

    [MAI$]


    Je n'ai jamais utilise les SQL et je suis completement perdu...je continue mes recherches en esperant qu'une ame charitable et un esprit formidable passe pas la...

    Merci d'avance!

    Saimon

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Solution!! :)
    Re a tous et a toutes,

    J'ai reussi voici donc la solution, je sais c'etait tout bete...mais bon!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL = "SELECT M.CLEE, M.[iRule Description], 'added' AS State, DateAdd('m',-1,[M].[DateH]) AS [Date of change] " & _
          "FROM [MAI$] AS M LEFT JOIN [AVRIL$] AS [M-1] ON M.[iRule Description] = [M-1].[iRule Description] " & _
          "GROUP BY M.CLEE, M.[Brand Family C], M.[iRule Description], [M-1].[iRule Description], 'added', DateAdd('m',-1,[M].[DateH]) " & _
          "HAVING ((([M-1].[iRule Description]) Is Null)) " & _
          "Union " & _
          "SELECT [M-1].CLEE, [M-1].[iRule Description], 'deleted' AS State, DateAdd('m',1,[M-1].[DateH]) AS [Date of change] " & _
          "FROM [MARS$] AS [M-1] LEFT JOIN [AVRIL$] AS M ON [M-1].[iRule Description] = M.[iRule Description] " & _
          "GROUP BY [M-1].CLEE, [M-1].[iRule Description], 'deleted', DateAdd('m',1,[M-1].[DateH]), [M-1].[Brand Family C], M.[iRule Description] " & _
          "HAVING (((M.[iRule Description]) Is Null)) " & _
          "Union " & _
          "SELECT [M-1].CLEE, [M-1].[iRule Description], 'modified' AS State, [M-1].DateH AS [Date of change] " & _
          "FROM [MARS$] AS [M-1] LEFT JOIN [AVRIL$] AS M ON [M-1].CLEE = M.CLEE " & _
          "GROUP BY [M-1].CLEE, [M-1].[iRule Description], 'Modified', [M-1].DateH, M.[iRule Description], M.CLEE " & _
          "HAVING (((M.[iRule Description])<>[M-1].[iRule Description]));"
    Merci a ceux qui auraient tenter de m'aider!

    Saimon

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

Discussions similaires

  1. Réponses: 33
    Dernier message: 06/06/2006, 14h41
  2. Adaptation fichier Excel dans Access
    Par guenfood dans le forum Access
    Réponses: 6
    Dernier message: 05/06/2006, 17h00
  3. [Débutant / SQL] Requête avec la fonction MAX
    Par bugmenot dans le forum Access
    Réponses: 3
    Dernier message: 14/04/2006, 10h43
  4. [Débutant] Conception requêtes SQL
    Par LhIaScZkTer dans le forum Langage SQL
    Réponses: 15
    Dernier message: 10/01/2006, 21h46
  5. [Débutant]Soucis requête jointure externes (8-i)
    Par jdotti dans le forum Oracle
    Réponses: 7
    Dernier message: 14/10/2005, 15h39

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