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 PostgreSQL Discussion :

Nombre de jours cumulé


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Master Data Manager
    Inscrit en
    Février 2017
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Master Data Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 113
    Par défaut Nombre de jours cumulé
    Bonjour.

    J'ai besoin de calculer des nombre de jours cumulé de debut et de fin d'opération a partir de date est j'ai du mal a trouver la bonne approche.

    voici un jeu de donnée d'exemple:

    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
    create table operations (
    	  id serial
    	, nom char(4)
    	, a date
    	, b date
    	, c date
    );
     
    insert into operations ( nom, a ,b ,c )
    values ( '0200', '2019-01-01' , '2019-01-02', '2019-01-05' ),
           ( '0300', '2019-01-05' , '2019-01-06', '2019-01-06' ),
           ( '0400', '2019-01-06' , '2019-01-10', '2019-01-11' )
    ;
     
    select * from operations;
    pour info:

    a = date d'arrivée

    b = date de prise en charge

    c = date de fin

    voici le résultat convoité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nom	debut	fin	type
    0200	0	1	ab
    0200	1	4	bc
    0300	4	5	ab
    0300	5	5	bc
    0400	5	9	ab
    0400	9	10	bc
    ou type défini:

    ab = jour d'attente

    bc = jour de traitement



    si je traduis les deux enregistrements qui on le nom "0300":

    la pièce est arrivé a l'opération (0300) le jour 4 a attendu (ab) jusqu’au jour 5 puis a été prise en charge (bc) le jour 5 est a été libéré le jour 5

    Et je ne sais tout simplement pas comment mi prendre pour calculer ça. Si vous aviez des pistes, cela me permettrait de refaire des nuits normales ou presque.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Master Data Manager
    Inscrit en
    Février 2017
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Master Data Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 113
    Par défaut
    Voici une solution:

    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
    with z as (
    	select * from operations
    	)
     
    select 
           b.nom
    	 , case when lag( b.cumul ) over ( order by b.nom, b.type ) is null 
                  then 0
                  else lag( b.cumul ) over ( order by b.nom, b.type )
           end as debut
    	 , b.cumul as fin
    	 , b.type
    from (
    	select *
    		 , sum( a.val ) over( order by a.nom, a.type ) as cumul
    	from (
    		select z.nom
                            , z.b - z.a as val
                            , 'ab' as type
                            from z
    		union all
    		select z.nom
                            , z.c - z.b as val
                            , 'bc' as type
                            from z
    	) as a
    ) as b
    order by b.nom, b.type

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

Discussions similaires

  1. Recuerer la date a partir du nombre de jour
    Par devdev2003 dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2005, 16h44
  2. [Dates] Nombre de jours entre deux dates
    Par cmoiscrat dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2005, 15h25
  3. Comment obtenir le nombre de jours entre deux timedatepicker
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2005, 11h59
  4. calcule du nombre de jours entre 2 dates
    Par nazimb dans le forum ASP
    Réponses: 4
    Dernier message: 28/09/2004, 15h22
  5. [CR]nombre de jours dans un mois donné
    Par liberio dans le forum Formules
    Réponses: 2
    Dernier message: 20/04/2004, 16h54

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