Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
J'ai des tables qui contiennent des dates et des n° d'évènements propres à ma société.
Un évènement "event_ID" peut être composé de plusieurs "CAPA_EVENT" mais voilà , les deux "CAPA_EVENT" sont concaténés d'office dans mes tables. Seulement j'ai besoin de les dissocier pour pouvoir les compter, et c'est là que je viens faire appel à vous , comment faire ? Sachant que j'ai des dates de créations de ces fameux "CAPA_EVENT" qui sont aussi concaténées , qu'il va falloir que je dissocie également mais tout en gardant la notion de première CAPA=Première date , etc... je vous joins une capture qui sera plus parlante.
Merci par avance pour votre aide 🙂
Alors en fait, tes dates ne sont pas séparé par un ";" mais par une virgule 😉
L'instruction Subfield dois donc être comme ca : subfield("capa_event_code",',') as CAPA
Le 2eme paramètre étant le caractère de séparation.
Il faut bien sur adapter ma solution en fonction de ton contexte, que je ne connais pas intégralement 😉
Comme quoi, voir le code ne suffit pas, il faut aussi connaitre les data 🙂
Salut,
J'ai une solution assez sympa 🙂
- Je fait 2 tables, une pour les CAPA_EVENT et une pour les CAPA_EVENT_DATE, en numérotant les lignes, puis je rassemble les 2 😉
Et en partant de ca :
J'arrive à ca 🙂
Je mets le script en PJ 😉
Merci beaucoup pour ton retour, je suis ultra débutant par contre, du coup, tu m'as un peu beaucoup perdu.
Ta méthode si j'ai bien compris implique de connaitre exactement le nombre de CAPA non ? car moi c'est variable au fil des jours . Mes données viennent d'une database Oracle .
Cdt,
Barba
Oups désolé, c'est un peu technique en effet 🙂
Ma méthode n'implique pas de connaitre le nombre d'élément, puisque je les compte 😉
Il faut savoir que le SUBFIELD va générer autant d'enregistrement que de composant du champs.
Je vais tacher de décomposer :
- D'abord j'ai ce script la :
CAPATEMP:
NoConcatenate
Load
EVENT,
subfield(CAPA,';') as CAPA
resident CAPA;
Qui permets d'éclater le champs CAPA_EVENT pour en mettre un par ligne.
En sortie, on obtiens ca :
Puis j'ajoute une numérotation, un indice par EVENT, comme ca :
CAPAFINAL:
NoConcatenate
Load
EVENT,
RowNo() as numligne,
if(EVENT <> Previous(EVENT),1,previous(peek('NumEvent'))+1) as NumEvent,
CAPA
resident CAPATEMP;
Pour obtenir ca :
Et ensuite je fait pareil avec le champ Date.
Ce qui au final me fait cette autre table :
Il ne me reste plus qu'à joindre les 2 tables grâce au couple EVENT + NumEvent 😉
J'espère que c'est un peu plus clair 😉
Bonjour,
J'ai essayé mais je n'obtiens pas l'attendu 😞 , je te joins mon script et j'ai mis en orange les champs en question.
Le champ Event_ID est la souche, celui-ci est décomposé en plusieurs capa_event_code , c'est ce dernier que je veux décomposer ainsi que closure_date
CAPA :
LOAD "workflow_id",
"event_id",
title,
description,
"detection_date",
"event_date",
"is_repeated_deviation",
"root_cause_analysis",
"preliminary_information",
"immediat_actions",
"event_type",
"investigation_categories",
"due_date",
subtype,
"type",
"lastupdate_date",
"event_status",
"event_status_corrected",
rejected,
site,
activity,
location,
"extended_due_date",
"deviation_level",
"deviation_level_revi",
"investigation_start",
"investigation_end",
"investigation_conclusion",
"investigation_team_members",
"quality_assurance_expert",
"investigation_leader",
"invest_steps_due_dates",
"invest_steps_titles",
"invest_steps_responsibles",
"invest_steps_status",
"invest_steps_sleeping_status",
"capa_comments",
"capa_title",
"capa_descriptions",
"capa_event_code",
"capa_creation_date",
"capa_closure_date",
"capa_summary_implementation",
"capa_impl_responsible_name",
"capa_expert_responsible_name",
"batch_code",
"item_code",
"item_designation",
"related_event_ids",
"related_event_count",
"equipment_code",
"equipment_designation",
"er_summaries",
operation,
"root_cause_classification",
"root_cause_sub_classification",
"level_real",
"level_potential",
"creation_date",
"post_date",
"acceptance_date",
"assessment_date",
"closure_date",
"creation_user",
"post_user",
"acceptance_user",
"assessment_user",
"closure_user",
"pip_requested_at",
"new_minor_flow",
"keywords_minor_flow";
FROM AwsDataCatalog."prod-phenix-business-data"."deviation_capa"
CAPATEMP:
NoConcatenate
Load
"event_id",
subfield("capa_event_code",';') as CAPA
resident CAPA;
CAPAFINAL:
NoConcatenate
Load
"event_id",
RowNo() as numligne,
if("event_id" <> Previous("event_id"),1,previous(peek('NumEvent'))+1) as NumEvent,
CAPA
resident CAPATEMP;
Quand j'ai un souci, je le décompose, ca permets de simplifier les problèmes 🙂
Donc cette 1ere partie
CAPATEMP:
NoConcatenate
Load
"event_id",
subfield("capa_event_code",';') as CAPA
resident CAPA;
dois permettre d'obtenir une 1ere table, avec l'éclatement en autant de ligne qu'il y a de capa_event_code par event_id.
Est-ce que déjà, cela marche ?
La 2eme requête va permettre elle d'ajouter un indice unique par couple "event_id+capa_event_code".
Est-ce que déjà, cela marche ?
Si oui, on progresse 🙂
Il faut ensuite refaire la même chose mais avec cette fois le champs closure_date.
On dois obtenir donc 2 tables qu'on joints par la clé "event_id+NumEvent"
Tout d'abord, un grand merci pour ton temps, c'est super sympa de ta part.
La première partie ne fonctionne pas malheureusement, je joins une capture.
Alors en fait, tes dates ne sont pas séparé par un ";" mais par une virgule 😉
L'instruction Subfield dois donc être comme ca : subfield("capa_event_code",',') as CAPA
Le 2eme paramètre étant le caractère de séparation.
Il faut bien sur adapter ma solution en fonction de ton contexte, que je ne connais pas intégralement 😉
Comme quoi, voir le code ne suffit pas, il faut aussi connaitre les data 🙂
Yes ça fonctionne !!! j'ai appris quelque chose grâce à toi, encore merci pour ton aide, et je te souhaite de bonnes fêtes de fin d'année