Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je vous propose un fichier Excel (sample_data) pour vous faire comprendre ce que je souhaite.
Par ailleurs, ci-dessous vous trouverez plus de détails sur la condition que je souhaite réaliser et l'explication du fichier Excel :
- Condition : marquer les dates_conso >= 48h (cad si date conso = 10/01/2020 à 8h additionner la date à + 48h = 12/01/2020 à 8h pour chaque num_sej). Cela me permettra donc du coup de récupérer les produits consommés dans les premières 48h du clients.
- Colonne g du fichier : explique de nouveau ce que je souhaite réaliser mais autrement. Par ailleurs je n'ai pas besoin de votre aide pour réaliser un compteur, j'ai pu solutionner ce problème.
Bonne journée !
Axel B
Bonjour,
si j'ai bien compris, ci-joint une solution :
Data:
LOAD Num_Sej,
Timestamp(Date(Date_dbt)+Maketime(08,00,00)) as Date_dbt ,
Timestamp(Date(Date_fin)+Maketime(08,00,00)) as Date_fin,
Timestamp(Date(Date_conso)+Maketime(08,00,00)) as Date_conso,
Code_Prod,
Num_Client
FROM
.\Sample_Data.xlsx
(ooxml, embedded labels, table is Feuil1);
temp:
load Num_Client,
Timestamp(min(Date_conso)+48/24) as min
resident Data group by Num_Client;
left join load * resident Data;
drop table Data;
output:
noconcatenate
load Num_Sej,Date_dbt,Date_fin,Date_conso,Code_Prod,Num_Client,
if(Date_conso<=min,1,0) as Flag
resident temp;
drop table temp;
puisque le fichier example ne contient pas de Time, donc j'ai ajouté par defaut 08:00:00 sinon tu peux utiliser les fichiers sources
après un groupement par client pour identifer le min+48h donc date+48/24 avec un left joint
puis le flag qui identifier si ou pas la date conso<= le min
résultats:
Bonjour,
si j'ai bien compris, ci-joint une solution :
Data:
LOAD Num_Sej,
Timestamp(Date(Date_dbt)+Maketime(08,00,00)) as Date_dbt ,
Timestamp(Date(Date_fin)+Maketime(08,00,00)) as Date_fin,
Timestamp(Date(Date_conso)+Maketime(08,00,00)) as Date_conso,
Code_Prod,
Num_Client
FROM
.\Sample_Data.xlsx
(ooxml, embedded labels, table is Feuil1);
temp:
load Num_Client,
Timestamp(min(Date_conso)+48/24) as min
resident Data group by Num_Client;
left join load * resident Data;
drop table Data;
output:
noconcatenate
load Num_Sej,Date_dbt,Date_fin,Date_conso,Code_Prod,Num_Client,
if(Date_conso<=min,1,0) as Flag
resident temp;
drop table temp;
puisque le fichier example ne contient pas de Time, donc j'ai ajouté par defaut 08:00:00 sinon tu peux utiliser les fichiers sources
après un groupement par client pour identifer le min+48h donc date+48/24 avec un left joint
puis le flag qui identifier si ou pas la date conso<= le min
résultats:
Bonjour Taoufiq,
Je te remercie pour ta réactivité, je vais tester du coup cela cette aprem.
Ab
Bonjour Taoufiq,
Je viens de réaliser des tests et je suis bloqué des ta première explications...
Je n'arrive pas à comprendre à ce que tu souhaites réaliser avec ce script :
timestamp(date(Date_dbt)maketime(08,00,00)) as Date_dbt
Tu comptes récupérer les horraires de chaque séjour ?
Pour la suite bien entendu pour le moment en regardant cela me parait être la logique que je souhaite ...
En te remerciant
A
Bonjour, d'après ce que j'ai compris dans ta question : 10/01/2020 à 8h mais dans le fichier test que tu as envoyé il ya que la date par exemple 10/01/2020 donc j'ai ajouter la ligne
Timestamp(Date(Date_dbt)+Maketime(08,00,00)) as Date_dbt
par exemple pour pouvoir afficher 10/01/2020 08:00:00
sinon en production si tu as l'heure déjà dans le champs Date_dbt tu peux utiliser juste :
Timestamp(Date_dbt) as Date_dbt,
D'accord, stupid question du coup je n'avais pas idée de cette fonction car effectivement en prod j'ai tout mes dates affiliées avec des horaires... Ce qui du coup m'évite d'utiliser cette fonction mais du coup je te remercie ça me permet de comprendre un peux mieux les config possible avec les champs dates et heures ^^
En te remerciant !
Taoufiq,
Après plusieurs tests, je comprends pas, je viens de changer le format et je pense que mon problème est clairement du à cela car quand j'effectue ton calcul Qlikview m'indique : invalid expression
Calcul : Timestamp(min(date_conso)+48/24) as min
ex de champ sur date_conso
22/06/2016 07:30:00 |
22/06/2016 18:30:00 |
22/06/2016 22:00:00 |
23/06/2016 07:30:00 |
23/06/2016 16:00:00 |
23/06/2016 18:00:00 |
23/06/2016 18:30:00 |
23/06/2016 22:00:00 |
24/06/2016 07:30:00 |
24/06/2016 08:00:00 |
24/06/2016 11:30:00 |
En te remerciant encore pour ton aide
Je n'arrive pas à voir l'erreur dan le syntaxe
est ce que tu peux utiliser la version en PJ et partager l'ecran d'erreur
Je pense que mon script comportait une erreur sur le chargement de données
J'ai copier ton script tout est fonctionnel, je ne t'avais même pas expliqué en plus que les num_sej était identique en fonction de la localisation : cad 1008 dispo sur loc 1 et 2 et 4 sur 10 loc. Même cette condition est pris en compte, c'est top !
Cependant en regardant je vois qu'il y a de forte chance par rapport au résultat que l'échelle de résultat ne soit pas borner par rapport au première 48h des l'arrivé mais par rapport première 48h de date de conso. Je vais réfléchir à ce pb en te remerciant, je te souhaite excellente journée !
au cas où tu détectes un problème avec les 48h partage l'erreur ici pour voir ensemble
Excellent journnée également