Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
brunobertels
Master
Master

Problème doublon dans dimension

Bonjour à tous

Je charge une liste ci dessous classé par date , Agent , type, nombre et Durée.

Parmi les différents champs de la colonne Type j'ai par Agent deux fois le type 'Pause'

Je cherche dans le script à changer l'intitulé Pause par 'HorsProd' pour chaque ligne ou le type est pause et le nombre et le plus élevé

   

DateNomTypeNombreDurée
26/10/2018Agent 1028Attente300h42'28
26/10/2018Agent 1028Sonnerie10h00'10
26/10/2018Agent 1028Traitement372h27'25
26/10/2018Agent 1028Appel entrant292h04'16
26/10/2018Agent 1028En attente10h03'51
26/10/2018Agent 1028Rappel80h23'09
26/10/2018Agent 1028Post-travail371h41'53
26/10/2018Agent 1028Pause50h19'58
26/10/2018Agent 1028Pause30h02'33
26/10/2018Agent 1028Personnelle10h12'07
26/10/2018Agent 1028Sortant10h05'18
26/10/2018Agent 1042Attente450h27'57
26/10/2018Agent 1042Sonnerie20h00'18
26/10/2018Agent 1042Traitement553h18'54
26/10/2018Agent 1042Appel entrant462h44'14
26/10/2018Agent 1042En attente80h20'17
26/10/2018Agent 1042Rappel90h34'40
26/10/2018Agent 1042Post-travail552h46'50
26/10/2018Agent 1042Pause40h20'52
26/10/2018Agent 1042Pause20h00'29
26/10/2018Agent 1042Personnelle20h20'23

Ainsi ceci

Pause avec 5 et Pause avec 3

26/10/2018Agent 1028Pause50h19'58
26/10/2018Agent 1028Pause30h02'33

devrait ressortir comme ceci

26/10/2018Agent 1028HorsProd50h19'58
26/10/2018Agent 1028Pause30h02'33

Mais je ne sais pas comment faire dans le script.

J'ai éssayer avec Replace mais comment indiquer le Replace(Type,'Pause','HorsProd') uniquement pour sur les intitulés 'Pause' on le nombre le plus élevé

Et ceci pour chaque Agent et Chaque date ?

Merci par avance

Bruno

1 Solution

Accepted Solutions
Aurelien_Martinez
Partner - Specialist II
Partner - Specialist II

Bonjour

Voici une solution:

data:

LOAD

*

INLINE [

    Date, Nom, Type, Nombre, Durée

    26/10/2018, Agent 1028, Attente, 30, "0h42'28"

    26/10/2018, Agent 1028, Sonnerie, 1, "0h00'10"

    26/10/2018, Agent 1028, Traitement, 37, "2h27'25"

    26/10/2018, Agent 1028, Appel entrant, 29, "2h04'16"

    26/10/2018, Agent 1028, En attente, 1, "0h03'51"

    26/10/2018, Agent 1028, Rappel, 8, "0h23'09"

    26/10/2018, Agent 1028, Post-travail, 37, "1h41'53"

    26/10/2018, Agent 1028, Pause, 5, "0h19'58"

    26/10/2018, Agent 1028, Pause, 3, "0h02'33"

    26/10/2018, Agent 1028, Personnelle, 1, "0h12'07"

    26/10/2018, Agent 1028, Sortant, 1, "0h05'18"

    26/10/2018, Agent 1042, Attente, 45, "0h27'57"

    26/10/2018, Agent 1042, Sonnerie, 2, "0h00'18"

    26/10/2018, Agent 1042, Traitement, 55, "3h18'54"

    26/10/2018, Agent 1042, Appel entrant, 46, "2h44'14"

    26/10/2018, Agent 1042, En attente, 8, "0h20'17"

    26/10/2018, Agent 1042, Rappel, 9, "0h34'40"

    26/10/2018, Agent 1042, Post-travail, 55, "2h46'50"

    26/10/2018, Agent 1042, Pause, 4, "0h20'52"

    26/10/2018, Agent 1042, Pause, 2, "0h00'29"

    26/10/2018, Agent 1042, Personnelle, 2, "0h20'23"

];

left Join(data)

LOAD

  Max(Nombre) as Nombre,

  1 as FLG_MAX,

  Date,

  Nom,

  Type

Resident data

Where

  Type = 'Pause'

Group by

  Date,

  Nom,

  Type

;

NoConcatenate

LOAD

  if(FLG_MAX = 1 , 'HorsProd', Type) as Type,

  Date,

  Nom,

  Nombre,

  Durée

Resident  data

;

DROP Table data;

Help users find answers! Don't forget to mark a solution that worked for you!

View solution in original post

2 Replies
Aurelien_Martinez
Partner - Specialist II
Partner - Specialist II

Bonjour

Voici une solution:

data:

LOAD

*

INLINE [

    Date, Nom, Type, Nombre, Durée

    26/10/2018, Agent 1028, Attente, 30, "0h42'28"

    26/10/2018, Agent 1028, Sonnerie, 1, "0h00'10"

    26/10/2018, Agent 1028, Traitement, 37, "2h27'25"

    26/10/2018, Agent 1028, Appel entrant, 29, "2h04'16"

    26/10/2018, Agent 1028, En attente, 1, "0h03'51"

    26/10/2018, Agent 1028, Rappel, 8, "0h23'09"

    26/10/2018, Agent 1028, Post-travail, 37, "1h41'53"

    26/10/2018, Agent 1028, Pause, 5, "0h19'58"

    26/10/2018, Agent 1028, Pause, 3, "0h02'33"

    26/10/2018, Agent 1028, Personnelle, 1, "0h12'07"

    26/10/2018, Agent 1028, Sortant, 1, "0h05'18"

    26/10/2018, Agent 1042, Attente, 45, "0h27'57"

    26/10/2018, Agent 1042, Sonnerie, 2, "0h00'18"

    26/10/2018, Agent 1042, Traitement, 55, "3h18'54"

    26/10/2018, Agent 1042, Appel entrant, 46, "2h44'14"

    26/10/2018, Agent 1042, En attente, 8, "0h20'17"

    26/10/2018, Agent 1042, Rappel, 9, "0h34'40"

    26/10/2018, Agent 1042, Post-travail, 55, "2h46'50"

    26/10/2018, Agent 1042, Pause, 4, "0h20'52"

    26/10/2018, Agent 1042, Pause, 2, "0h00'29"

    26/10/2018, Agent 1042, Personnelle, 2, "0h20'23"

];

left Join(data)

LOAD

  Max(Nombre) as Nombre,

  1 as FLG_MAX,

  Date,

  Nom,

  Type

Resident data

Where

  Type = 'Pause'

Group by

  Date,

  Nom,

  Type

;

NoConcatenate

LOAD

  if(FLG_MAX = 1 , 'HorsProd', Type) as Type,

  Date,

  Nom,

  Nombre,

  Durée

Resident  data

;

DROP Table data;

Help users find answers! Don't forget to mark a solution that worked for you!
brunobertels
Master
Master
Author

bonjour Aurélien

Parfait çà marche

Merci beaucoup