Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Expression

Bonjour Tout le monde,

Voila j'ai un petit probleme à creer une expression pour cacluler ceci:

J'ai trois tables : Action : Id_Action,  Date_Action,  Id_Personne,    Date_Fin_Action.

                         Personne : Id_Personne , Nom.

                         Reservation Id_reservation, Id_Personne, date_Reservation ... etc.

Pour chaque action:

1- je veux calculer le nombre de personne qui ont reçu l'action avec cette exepression (Count(DISTINCT Action.Id_Personne))

2- le nombre de réservations effectués par ces personne qui ont reçu l'action mais avec Date_Action<Date_Reservation<= Date_Fin_Action.

J'ai un petit probleme à créer la deuxieme expression.

Merci pour votre aide.

Cordialement.

1 Solution

Accepted Solutions
almamy_diaby
Creator
Creator

Bonjour.

essaie Ceci;

Dans l'editeur de script:

Reservation:

Load

Id_reservation,

Id_Personne,

date_Reservation

from table_Reservation;/// chemin d'accès à definir


//// Introduisons  la date de réservation dans la table Action

Reservation_Map:

load

Id_Personne,

date_Reservation

Resident  Reservation;

Action :

Load

Id_Action,

Date_Action, 

Id_Personne,

ApplyMap(' Reservation_Map' ,Id_Personne,null()) as date_Reservation_Action;

Date_Fin_Action

From table ; /// chemin d'accès à definir

Action2:

Load

Id_Action,

Date_Action, 

Id_Personne,

date_Reservation_Action;

if(Date_Action<Date_Reservation and Date_Reservation<= Date_Fin_Action,Id_Personne,null()) as Id_Personne_Resev_Action,

Date_Fin_Action

Resident Action;

Drop Table Action;

Personne :

Load

Id_Personne ,

Nom

From table_Personne; // chemin d'accès à definir


Dans l'interface graphique:

Faire:  =Count(distinct Id_Personne_Resev_Action) au niveau des objets: un objet text par exemple;

View solution in original post

7 Replies
Not applicable
Author

Bonjour,

Pour faire ça et pour plus tard, dès que tu as une notion de Date Début - Date Fin

il faudra très souvent pour ne pas dire toujours  utiliser la fonction  IntervalMatch.

Cdlt,

mambi
Creator III
Creator III

=count({$<Date_Action<{Date_Reservation},Date_Reservation<={Date_Fin_Action}>}Id_reservation)

mais si tu as un exemple de data ça sera plus simple

Not applicable
Author

Bonjour,

Merci pour votre réponse, mais serait il possible d'ecrire l'expression dans la réponse car j'arrive pas à ouvrir des projet de d'autres personen vue que j'utilise la version d'évaluation de QlikView.

Merci d'avance.

Not applicable
Author

Merci pour votre réponse, mais j'ai pas trés bien compris l'expression.

Au fait mon but et de calculer le count(id_reservation) quand Date_Action<Date_Reservation  and Date_Reservation<=Date_Fin_Action.

Ese ce que cette partie de l'expression : {$<Date_Action<{Date_Reservation},Date_Reservation<={Date_Fin_Action}>}

joue le role d'un filtre? et pour quoi vous avez utiliser $?

Merci d'avance

mambi
Creator III
Creator III

cette expression utilise ce qu'on appel les SET ANALYSIS, c'est l'équivalent d'un filtre

et le signe $ c'est pour désigner la selection active uniquement mais tu peux utiliser le 1 à la place du $ pour désigner tous les enregistrements.

plus de détails ici : http://community.qlik.com/docs/DOC-4889

almamy_diaby
Creator
Creator

Bonjour.

essaie Ceci;

Dans l'editeur de script:

Reservation:

Load

Id_reservation,

Id_Personne,

date_Reservation

from table_Reservation;/// chemin d'accès à definir


//// Introduisons  la date de réservation dans la table Action

Reservation_Map:

load

Id_Personne,

date_Reservation

Resident  Reservation;

Action :

Load

Id_Action,

Date_Action, 

Id_Personne,

ApplyMap(' Reservation_Map' ,Id_Personne,null()) as date_Reservation_Action;

Date_Fin_Action

From table ; /// chemin d'accès à definir

Action2:

Load

Id_Action,

Date_Action, 

Id_Personne,

date_Reservation_Action;

if(Date_Action<Date_Reservation and Date_Reservation<= Date_Fin_Action,Id_Personne,null()) as Id_Personne_Resev_Action,

Date_Fin_Action

Resident Action;

Drop Table Action;

Personne :

Load

Id_Personne ,

Nom

From table_Personne; // chemin d'accès à definir


Dans l'interface graphique:

Faire:  =Count(distinct Id_Personne_Resev_Action) au niveau des objets: un objet text par exemple;

Not applicable
Author

Ahh ouii donc je ne charge que les ligne qui respectent la condition.

Merci pour votre aide