Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

regrouper lignes enregistrements

bonjour,

j'ai une table qui contient les champs suivants :

Nom PC

Session

Date

HeureOn

HeureOff

qui correspond aux connexions et aux déconnexions des utilisateurs sur leur PC.

Le problème c'est que j'ai une ligne pour le On et une autre ligne pour le Off alors que je voudrais avoir pour un PC et une Session et à une Date le On et le Off sur la même ligne. Comment regrouper les lignes, j'imagine qu'il faut que je reload ma table, mais comment faire ?

Nom PCSessionDateHeureOnHeureOff
LM1-CDR-A-002fcuser12121/05/201414:11:33-
LM1-CDR-A-002fcuser12121/05/2014-15:05:27
1 Solution

Accepted Solutions
Not applicable
Author

Bonjour Jacky

voici

bon courage

Christian

View solution in original post

32 Replies
Not applicable
Author

Jacky

2 solutions

1. dans le script charger la table en 2 fois avec les on puis concatenate ou join avec le off

2.mettre HeureOn en dimension et only(HeureOff) en expression

christian

Not applicable
Author

la solution 1 m'intéresse plus mais je ne comprends pas car avec le concatenate cela met les lignes Off après les lignes On comme à l'origine donc pas le résultat recherché :

final:

LOAD

[Nom PC],
Session,
    Date,
    HeureOn
 
FROM baseTemp.qvd (qvd);

Concatenate

LOAD 

[Nom PC],
Session,
    Date,
HeureOff

    

FROM baseTemp.qvd (qvd);

ou alors il me manque quelque chose ?

Not applicable
Author

HeureOn et HeureOff doivent avoir le même nom je pense.

En SQL ca serai dans le même style qu'un UNION

Not applicable
Author

Bravo

je suis allé un peu vite dans ma réponse et j'ai oublié ce point

christian

Not applicable
Author

non HeureOn et HeureOff ne peuvent pas avoir le même nom car ça sera la même colonne et après je ne pourrais pas faire des calculs sur les 2 colonnes

Not applicable
Author

ou alors il faut faire un Join entre les chargements mais un Join sur les 3 premiers champs !!!! et moi je ne sais faire q'un Join sur le 1er champ

Not applicable
Author

Jacky le JOIN est automatique sur le nom et le contenu des champs

final:

LOAD

[Nom PC],
Session,
    Date,
    HeureOn
 
FROM baseTemp.qvd (qvd);

JOIN

LOAD 

[Nom PC],
Session,
    Date,
HeureOff

    

FROM baseTemp.qvd (qvd);

Not applicable
Author

désolé mais même avec le join ça ne regroupe pas les lignes dans ma table

Not applicable
Author

je vois deux moyens

1. soit tu fais un group by sur la table obtenu après traitement

Final1:

LOAD

[Nom PC],
Session,
  Date,

max(HeureOff) as HeureOff,

max(HeureOn) as Heureon

resident final

group by

[Nom PC],
Session,
  Date

2. Soit tu charges une table de mapping

map_heureoff:

mapping load [Nom PC] &'_' &Session&'_'  &Date, HeureOff

FROM baseTemp.qvd (qvd);

puis ensuite tu utilises cette table de mapping

LOAD

[Nom PC],

Session,

    Date,

    HeureOn,

    ApplyMap('map_heureoff',[Nom PC] &'_' &Session&'_'  &Date) as HeureOff

FROM baseTemp.qvd (qvd);