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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 34
    Points : 22
    Points
    22

    Par défaut Resultats mensuel par année

    Bonjour

    Tout d'abord bonne année 2019 à tous et à toutes !!!

    Voilà j'ai un table de produit qui viennent de plusieurs pays avec une date de réception de ces produits

    Donc dans ma table produit j'ai donc mes 3 champs : produitId, produitPaysId et produitDateReception(format date YYYY-MM-JJ)

    J'ai ma table pays avec des champs paysId, paysNom

    Et j'ai une table annee avec des champs anneeId et anneeLibelle

    Bon j'arrive à faire mes requêtes pour avoir mes produits reçu pour l'année (tableau avec nom du produit ainsi que nombre reçu par produit) mais ce que je voudrais faire c'est faire une tableau pour l'année choisie avec des colonnes par mois de produits reçus et là je cale !!

    Avez-vous des pistes ??

    Cordialement

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    septembre 2007
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : septembre 2007
    Messages : 8 239
    Points : 14 314
    Points
    14 314

    Par défaut

    Bonjour,

    Citation Envoyé par leblaireau12 Voir le message
    Bon j'arrive à faire mes requêtes pour avoir mes produits reçu pour l'année (tableau avec nom du produit ainsi que nombre reçu par produit) mais ce que je voudrais faire c'est faire une tableau pour l'année choisie avec des colonnes par mois de produits reçus et là je cale !!
    Une requête de ce genre: https://andry.developpez.com/tutorie...page_1#LII-B-1

    A+.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2008
    Messages : 167
    Points : 150
    Points
    150

    Par défaut

    Salut,
    j'aurai tendance à faire une requête de ce type (à confirmer par plus expert):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT MONTH(produitDateReception) as mois, produitDateReception, produitId, produitPaysId FROM taTable WHERE MONTH(produitDateReception)=2019 ORDER BY MONTH(produitDateReception) ASC";

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    septembre 2007
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : septembre 2007
    Messages : 8 239
    Points : 14 314
    Points
    14 314

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(produitDateReception)=2019
    à remplacer par
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    year(produitDateReception)=2019
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY MONTH(produitDateReception) ASC
    par
    A+.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 34
    Points : 22
    Points
    22

    Par défaut Resultats mensuel par année

    Bonjour

    Merci pour vos réponses !!

    Je vais tester tout ça

    Cordialement

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    septembre 2002
    Messages
    1 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : septembre 2002
    Messages : 1 401
    Points : 2 495
    Points
    2 495

    Par défaut

    Pour avoir une structure tabulaire avec SQL c'est un peu compliqué.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    select
    AM_LP.annee AS "Année",
    AM_LP.article AS "Article",
    sum(case when JAN.quantite is null then 0 else JAN.quantite end) as "Janvier",
    sum(case when FEV.quantite is null then 0 else FEV.quantite end) as "Février",
    sum(case when MAR.quantite is null then 0 else MAR.quantite end) as "Mars",
    sum(case when AVR.quantite is null then 0 else AVR.quantite end) as "Avril",
    sum(case when MAI.quantite is null then 0 else MAI.quantite end) as "Mai",
    sum(case when JUN.quantite is null then 0 else JUN.quantite end) as "Juin",
    sum(case when JUI.quantite is null then 0 else JUI.quantite end) as "Juillet",
    sum(case when AOU.quantite is null then 0 else AOU.quantite end) as "Aout",
    sum(case when SEP.quantite is null then 0 else SEP.quantite end) as "Septembre",
    sum(case when OKT.quantite is null then 0 else OKT.quantite end) as "Octobre",
    sum(case when NOV.quantite is null then 0 else NOV.quantite end) as "Novembre",
    sum(case when DEZ.quantite is null then 0 else DEZ.quantite end) as "Décembre"
    from 
    (
     select 
     annee, article 
     from xannee
     inner join xarticle XA on 1=1
     where annee = 2018
    ) AM_LP
    left join (select * from xproduit where month(daterec) = 1)  JAN on year(JAN.daterec) = AM_LP.annee and JAN.article = AM_LP.article 
    left join (select * from xproduit where month(daterec) = 2)  FEV on year(FEV.daterec) = AM_LP.annee and FEV.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 3)  MAR on year(MAR.daterec) = AM_LP.annee and MAR.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 4)  AVR on year(AVR.daterec) = AM_LP.annee and AVR.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 5)  MAI on year(MAI.daterec) = AM_LP.annee and MAI.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 6)  JUN on year(JUN.daterec) = AM_LP.annee and JUN.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 7)  JUI on year(JUI.daterec) = AM_LP.annee and JUI.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 8)  AOU on year(AOU.daterec) = AM_LP.annee and AOU.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 9)  SEP on year(SEP.daterec) = AM_LP.annee and SEP.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 10) OKT on year(OKT.daterec) = AM_LP.annee and OKT.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 11) NOV on year(NOV.daterec) = AM_LP.annee and NOV.article = AM_LP.article
    left join (select * from xproduit where month(daterec) = 12) DEZ on year(DEZ.daterec) = AM_LP.annee and DEZ.article = AM_LP.article
    group by AM_LP.annee, AM_LP.article
    Donne
    Nom : Capture20190112_001.JPG
Affichages : 23
Taille : 43,0 Ko


    Ma table article
    Nom : Capture20190112_002.JPG
Affichages : 22
Taille : 10,9 Ko

    Ma table année
    Nom : Capture20190112_003.JPG
Affichages : 22
Taille : 10,0 Ko

    Ma table produit (il y a plus de données que sur l'image et aucune sur le mois de novembre)
    Nom : Capture20190112_004.JPG
Affichages : 23
Taille : 39,2 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. Comment remplacer un resultat numérique par son libellé ?
    Par bds2006 dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2006, 11h03
  2. [10g] Archivage de données par années
    Par Cereal123 dans le forum Oracle
    Réponses: 7
    Dernier message: 24/04/2006, 09h35
  3. Réponses: 1
    Dernier message: 16/01/2006, 16h51
  4. [sql 9i] group by par années ;)
    Par booth dans le forum Oracle
    Réponses: 7
    Dernier message: 04/10/2005, 10h42
  5. [LG]résultat renvoyé par une fonction
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 10/12/2003, 10h31

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