1. #21
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 205
    Points : 18 790
    Points
    18 790
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par Just-Soft Voir le message
    Effectivement, tu as raison sur toute la ligne.
    Merci, il faut donc bien utiliser une période mensuelle comme je l'ai indiqué soit EXTRACT(YEAR FROM DATE_MOIS)*100+EXTRACT(MONTH FROM DATE_MOIS)
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  2. #22
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    mai 2008
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 266
    Points : 2 275
    Points
    2 275

    Par défaut

    Citation Envoyé par SergioMaster Voir le message
    Merci, il faut donc bien utiliser une période mensuelle comme je l'ai indiqué soit EXTRACT(YEAR FROM DATE_MOIS)*100+EXTRACT(MONTH FROM DATE_MOIS)
    Très juste, j'avais supprimer tout ce qui est après le multiplicateur, et sans faire un rafraîchissement, j'ai eu le même résultat mais en fait c'était faux.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #23
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    mai 2008
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 266
    Points : 2 275
    Points
    2 275

    Par défaut

    Alors, je redonne le code de la vue pour celui que veut s'inspirer :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    CREATE OR ALTER VIEW EFFECTIF_EVOLUTION(
        NOM_UNITE,
        DATE_MOIS,
        CADRE,
        MAITRISE,
        EXECUTION,
        TOTAL)
    AS
    WITH RECURSIVE PERIODE(DEBUTMOIS,P)
        AS (SELECT MAX(DATE_MOIS),EXTRACT(YEAR FROM MAX(DATE_MOIS)) * 100 +
        EXTRACT(MONTH FROM MAX(DATE_MOIS))
        AS P from tb_effectif
            union all
            select DATEADD(-1 MONTH TO DEBUTMOIS),EXTRACT(YEAR FROM DATEADD(-1 MONTH TO DEBUTMOIS)) * 100 +
                EXTRACT(MONTH FROM DATEADD(-1 MONTH TO DEBUTMOIS))
                from PERIODE
            where EXTRACT(YEAR FROM  DATEADD(-1 MONTH TO DEBUTMOIS))>=2009
            ),
    FINAN AS (SELECT MAX(P) AS PA FROM PERIODE
    GROUP BY EXTRACT(YEAR FROM DEBUTMOIS)),
     
    UAN AS (SELECT U.CODE_UNITE,U.NOM_UNITE,P.PA FROM TB_UNITE U FULL JOIN FINAN P ON 1=1),
     
    EFFECTIF AS (   select CODE_UNITE,EXTRACT(YEAR FROM date_mois) * 100 +
                    EXTRACT(MONTH FROM date_mois)
                    as periodemensuelle,
            /* cadre */
            Sum(nbr_cadre_unite +nbr_cadre_centre+nbr_cadre_step +nbr_cadre_sr) as cadre,
            /* maitrise */
            Sum(nbr_maitrise_unite + nbr_maitrise_centre+nbr_maitrise_step + nbr_maitrise_sr) as  maitrise,
            /* execution */
            Sum(nbr_execution_unite + nb_execution_centre+nbr_execution_step + nbr_execution_sr) as execution,
            /* total */
            Sum(nbr_cadre_unite +nbr_cadre_centre+nbr_cadre_step +nbr_cadre_sr) +
            Sum(nbr_maitrise_unite + nbr_maitrise_centre+nbr_maitrise_step + nbr_maitrise_sr) +
            Sum(nbr_execution_unite + nb_execution_centre+nbr_execution_step + nbr_execution_sr) as Total
        from tb_effectif
        GROUP BY CODE_UNITE, code_unite, EXTRACT(YEAR FROM date_mois) *100 +
        EXTRACT(MONTH FROM date_mois)
        )
     
    SELECT  U.NOM_UNITE, substring(U.PA from 1 for 4),
            COALESCE(E.cadre,0) AS CADRE,
            COALESCE(E.Maitrise,0) AS MAITRISE,
            COALESCE(E.Execution,0) AS EXECUTION,
            COALESCE(E.cadre,0) + COALESCE(E.Maitrise,0) + COALESCE(E.Execution,0) AS TOTAL
    FROM  UAN U LEFT JOIN EFFECTIF E ON U.code_unite = E.CODE_UNITE AND E.PERIODEmensuelle = U.PA
    ;
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/03/2016, 21h16
  2. Requête sur un MemData
    Par claude dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/12/2004, 10h11
  3. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 16h11
  4. Requête sur un serveur lié
    Par Guizz dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 06/08/2003, 11h35
  5. requête sur l'année d'une date
    Par jo77 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2003, 09h28

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