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 :

récupérer des données après suppression


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut récupérer des données après suppression
    Bonjour a tous et a toutes,

    Je possède une application Access contenant deux tables : tblProduits et tblCPU. Cette application est utilisé pour générer des rapports. A partir d'une interface, les utilisateurs vont choisir une date de debut et une date de fin qui va donc lancer la requete a partir de celle-ci avec les dates spécifiées et générer un rapport comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    NoPrd	NomPrd	          2008janv         2008fev         2008mars
    2	Voiture             0.0056             0.0054            0.00537
    3	Avions              9.6074             7.6959            7.8179
    4	Jouets              0.1317             0.136              0.1012
    5	Outils               0.5949             0.3136             0.2583
    6	Divers              0.309               0.2773            0.2485
    Voici ma requete sql permettant d'avoir le resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    strSQL = "TRANSFORM Sum(reqCPU.SommeDeQuantite) AS QuantiteTotal " + _
                         "SELECT reqCPU.NoPrd, tblProduits.NomPrd " + _
                         "FROM reqCPU, tblProduits " + _
                         "WHERE (((reqCPU.NoPrd)=[tblProduits].[NoPrd]) AND " + _
                         "((tblProduits.ANNEE)=GetCurrentAnnee()) AND ((tblProduits.MOIS)=GetCurrentMois()) AND " + _
                         "(([reqCPU].[Annee] & [reqCPU].[Mois]) Between '" + strDateDebut + "' And '" + strDateFin + "')) " + _
                         "GROUP BY reqCPU.NoPrd, tblProduits.NomPrd " + _
                         "PIVOT reqCPU.Annee & reqCPU.Mois;"
    Voici un apercu de la table tblProduits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ANNEE   MOIS      NoPrd      NomPrd
    2008	03	2	Voiture
    2008	03	3	Avions
    2008	03	4	Jouets
    2008	03	5	Outils
    2008	03	6	Divers
    Voici mon probleme :
    il arrive que pour ce mois par exemple (mois de mars), on souhaite enlever le produit 5. Lorsque ce produit est enlevé de la table tblProduits pour le mois de mars, lors du lancement du rapport, si l'usager choisit la periode 2008janv au 2008mars, le produit 5 disparait completement alors qu'il devrait apparaitre quand meme car il contient des données pour le mois de janv et fevrier.

    Je voudrais pouvoir récupérer, lorsque j'execute ma requete, que tout les numéros de produit ayant déjà été utilisé apparaisse dans ma requete et ne disparaisse pas lorsqu'ils sont retirés de la tblProduits pour le mois courant.

    N.B : Le reqCPU est une requete lié a la table CPU afin d'aller chercher les quantités de données pour chaque produit.

    Je ne sais pas si j'ai été assez claire, mais votre aide serait grandement apprecié si vous pouvez m'aider a modifier ma requete SQL pour m'afficher ce que je veux..

    Merci d'avance.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    peut être une solution (non testée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    strSQL = "TRANSFORM Sum(reqCPU.SommeDeQuantite) AS QuantiteTotal " & _
                "SELECT reqCPU.NoPrd, tblProduits.NomPrd FROM reqCPU " & _
                "Inner Join tblProduits On reqCPU.NoPrd=tblProduits.NoPrd " & _
                "WHERE (reqCPU.Annee & reqCPU.Mois) BETWEEN '" & strDateDebut & "' " & _
                "AND '" & strDateFin & "' GROUP BY reqCPU.NoPrd, tblProduits.NomPrd " & _
                "PIVOT (reqCPU.Annee & reqCPU.Mois);"
    Philippe

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut
    Bonjour Philippe,

    ton idée est bonne cependant cela m'affiche plusieurs lignes de chaque produit avec des données différentes. Voici un apercu de ta requete sql :
    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
     
    NoPrd	NomPrd	                    200801        200802       200803
    2		                   0.00561995   0.00549952  0.00537909
    2	SIGNALEMENT	      0.7530733   0.73693568	   0.72079806
    3		                   9.6074655   7.69591251   7.81797313
    3	FICS	                   979.961481  784.983076  797.4332593
    3	FICS G-L/BUDGET	      307.438896  246.2692003 250.1751402
    4		                   0.13174956  0.13604525   0.10124747
    4	COMPTES à PAYER	      13.43845512 13.8766155  10.32724194
    4	COMPTES PAYABLES     4.21598592   4.353448     3.23991904
    5	CPCS - MONTREAL        557.3595459 563.9382665 371.0832352
    5	CPCS/MTL	       1621.409588  1640.547684 1079.514866
    5	INTRIA/MTL	       101.3380993  102.5342303  67.46967912
    6	COMPTE DIRECTION U.S.  32.9971428	  30.39466176  27.91262946
    6	COMPTE DIRECTION US    10.6755462	   9.83356704  9.03055659
    J'ai remarqué que la ligne qui ne contient pas de libellé est la bonne valeur que je souhaite faire apparaitre pour les NoAppl de 2 a 4 mais pas les deux autres lignes contenant des libellés. Pour les autres NoAppl, ce ne sont pas les bonnes valeurs, ce qui est affiché ne représente pas le mois respectif.

    Merci beaucoup pour ton aide et pour toute autre personne ayant une idée.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    J'ai remarqué que la ligne qui ne contient pas de libellé est la bonne valeur que je souhaite
    Votre table tblproduit doit contenir des produits sans nomPrd renseigné

    ce qui est affiché ne représente pas le mois respectif
    Vérifier que (reqCPU.Annee & reqCPU.Mois) et strDateDebut et strDateFin expriment le Annéemois dans le même format.

    Si ca ne fonctionne pas, il faut poster un extrait de votre base

    Philippe

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut
    Merci Philippe pour ton aide. J'ai reussi a contourner le probleme autrement. Plus long mais fonctionne bien. Ton code ma quand meme aider beaucoup

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/06/2011, 09h37
  2. [PDO] Récupérer des données apres controle COUNT
    Par Invité dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/10/2010, 10h54
  3. Réponses: 6
    Dernier message: 29/04/2009, 14h22
  4. récupérer des données après formatage
    Par makaphrodite dans le forum Windows XP
    Réponses: 4
    Dernier message: 27/08/2008, 05h02
  5. Récupérer des données après un formatage
    Par 4rocky4 dans le forum Composants
    Réponses: 4
    Dernier message: 07/07/2008, 11h02

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