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

MS SQL Server Discussion :

Besoind'aide pour requête mise à jour


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 1
    Par défaut Besoind'aide pour requête mise à jour
    Bonjour,

    Je suis débutante et ai besoin d'aide pour requête de mise à jour entre 2 fichiers :

    Voilà mon souci : j'ai 2 fichiers : 1 avec un code par personne (md2_contacts) et 1 autre avec tous les dons fait par chaques personnes (md2_versements). Voici leurs structures :

    md2_contacts :
    COCODE 1141761 1206788 1268499 1479369 1580265 1580398
    DATE_VERST1
    MT_VERST1
    DATE_VERST2
    MT_VERST2
    DATE_VERST3
    MT_VERST3
    DATE_VERST4
    MT_VERST4
    DATE_VERST5
    MT_VERST5

    m2d_versements :
    COCODE DATEVERS MTEURO
    1141761 20071224 10
    1206788 20071130 150
    1206788 20080404 60
    1268499 20080123 10.80
    1479369 20080210 10
    1479369 20080110 10
    1479369 20080310 10
    1479369 20071210 10
    1580265 20071128 15
    1580398 20071208 15
    Omme vous pouvez le constater je peux avoir plusieurs versements par personne. Ce dont j'ai besoin c'est mettre à jour les colonnes DATE_VERST1, MT_VERST1, DATE_VERST2, MT_VERST2, ... etc du fichier m2d_contacts avec les infos que j'ai dans le fichier m2d_versements. Par contre, dans les colonnes DATE_VERST, je n'ai besoin que de l'année.

    Voilà, j'espère que c'est clair et que quelqu'un va pouvoir m'aider rapidement car ma direction me le demande en urgence...

    Merci pour votre aide à tous.

    Anne-so

  2. #2
    FMJ
    FMJ est déconnecté
    Membre éclairé
    Profil pro
    tutu
    Inscrit en
    Octobre 2003
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : tutu

    Informations forums :
    Inscription : Octobre 2003
    Messages : 417
    Par défaut
    Tu n'as qu'à leur répondre que tu n'es pas un expert SQL et qu'ils n'ont qu'à passer par la prestation d'un spécialiste pour mettre en œuvre cet export. Ils apprécieront surement ...


    Pour en revenir à ta question, si j'ai à peu près bien compris, il s'agirait de faire un sorte export de type tableau croisé dynamique avec un nombre de colonnes non fixé avant la requête (ce qui n'est pas trivial) et surtout sans savoir leur classement (tous les clients n'auront pas forcément toutes les même année de paiement, c'est ça la vraiment difficulté !).

    Si ce type de résultat ne te gêne pas :
    Client ....... ANNEE1..Montant1.... ANNEE2..Montant2..... ANNEE3 .... Montant3
    ClientA.......2006.........204.............2007 .........13.........2008 ........ 29
    ClientB........................................2007 ..........72.........2008 ....... 35

    Il te suffit de faire une bête requête de sélection avec pour chaque colonne une clause de test de type (CASE WHEN DATEVERS = 2008 THEN MTEUROEND ELSE 0 END) qui permet de ne sommer que la bonne année.

    Par contre, si tu veux le résultat suivant, c'est un peu plus embêtant :
    ClientA.......2006.........204.............2007........13..........2008 ........ 29
    ClientB.......2007.........72...............2008........35......................

    Je verrais bien une première requête de sélection qui somme les montants par année et qui en même temps crée un numéro de rang selon les années.
    Exemple :
    Client ....... ANNEE........Montant........Rang
    ClientA.......2006..........204..............1
    ClientA.......2007..........123..............2
    ClientA.......2006..........453..............3
    ClientB.......2007..........709..............1
    ClientB.......2008..........626..............2

    cf. ce tuto pour le calcul du rang :http://access.developpez.com/sources/?page=Requete#RequeteClassement

    Ensuite tu refais la même requête sélection que le 1er cas en faisant la clause de test sur le rang et non sur l'année.

    Ensuite, il suffit de faire un update.

    Je pense que cela peut se faire assez facilement de cette façon.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/09/2013, 10h49
  2. Réponses: 2
    Dernier message: 06/11/2009, 23h57
  3. Aide sur une requête mise à jour
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 07/05/2008, 13h44
  4. Pb de sous-requête pour une mise à jour
    Par Balthos dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 05/03/2008, 09h13

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