Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello,
Please help.
I have a Table ( 'Quelle' ) as Source. There are two fields in it ( 'Erster' , 'Zweiter' ), which should be compared.
I need the field with more characters as return ( 'BestOf' ). If both fields ( 'Erster' , 'Zweiter' ) have an evan count of characters then take 'Erster' as return.
Up to now I have the following Code in my Skript:
--------------------------------------------------------------------------------------------
Quelle:
LOAD * INLINE [
Erster, Zweiter, Primärschlüßel
a, 22, aaa
ab, 333, bbb
abc, 4444, ccc
abcd, 4444, ddd
abcde, 4444, eee
ab, 55555, fff,
ab, 1, ggg
ab, 22, hhh
];
Ergebniss:
LOAD
Primärschlüßel as Sekundärschlüßel
Resident Quelle;
for i = 0 to (NoOfRows('Quelle'))-1;
let vLänge_Erster = len(peek('Erster',$(i),'Quelle'));
let vLänge_Zweiter = len(peek('Zweiter',$(i),'Quelle'));
Trace Durchgang i: $(i);
Trace Länge von 'Erster': $(vLänge_Erster);
Trace Länge von 'Zweiter': $(vLänge_Zweiter);
if vLänge_Erster >= vLänge_Zweiter Then
Trace genommern wird Wert aus Feld:'Erster';
left Join (Ergebniss)
load
peek('Erster',$(i),'Quelle') as BestOf,
$(i) as i,
peek('Primärschlüßel',$(i),'Quelle') as Sekundärschlüßel
Resident Ergebniss;
else
Trace genommern wird Wert aus Feld: 'Zweiter';
left Join (Ergebniss)
load
peek('Zweiter',$(i),'Quelle') as BestOf,
$(i) as i,
peek('Primärschlüßel',$(i),'Quelle') as Sekundärschlüßel
Resident Ergebniss;
ENDIF
Trace -----------;
next
--------------------------------------------------------------------------------------------
I think somewhere in the red parts is a Bug, but I can't find it.
Can anyone help me?
THX
Hi,
please find the attached solution Qvw.
** Modified Script****
Quelle:
LOAD * INLINE [
Erster, Zweiter, Primärschlüßel
a, 22, aaa
ab, 333, bbb
abc, 4444, ccc
abcd, 4444, ddd
abcde, 4444, eee
ab, 55555, fff,
ab, 1, ggg
ab, 22, hhh
];
Ergebniss:
LOAD
Primärschlüßel as Sekundärschlüßel
Resident Quelle;
for i = 0 to (NoOfRows('Quelle'))-1;
let vLänge_Erster = len(peek('Erster',$(i),'Quelle'));
let vLänge_Zweiter = len(peek('Zweiter',$(i),'Quelle'));
Trace Durchgang i: $(i);
Trace Länge von 'Erster': $(vLänge_Erster);
Trace Länge von 'Zweiter': $(vLänge_Zweiter);
// if vLänge_Erster >= vLänge_Zweiter Then
//
// Trace genommern wird Wert aus Feld:'Erster';
// left Join (Ergebniss)
Table:
load
if( $(vLänge_Erster) >= $(vLänge_Zweiter),peek('Erster',$(i),'Quelle'), peek('Zweiter',$(i),'Quelle')) as BestOf,
$(i) as i,
peek('Primärschlüßel',$(i),'Quelle') as Sekundärschlüßel
Resident Ergebniss;
//
// else
//
// Trace genommern wird Wert aus Feld: 'Zweiter';
//
// left Join (Ergebniss)
//
// load
//
// peek('Zweiter',$(i),'Quelle') as BestOf,
//
// $(i) as i,
//
// peek('Primärschlüßel',$(i),'Quelle') as Sekundärschlüßel
//
// Resident Ergebniss;
//
// ENDIF
//
// Trace -----------;
next
//NoConcatenate
left Join (Ergebniss)
LOAD
*
Resident Table;
DROP Table Table,Quelle;
********************************************* SCRIPT END ***********************************************
Regards,
Bhasker Kumar
Hi,
please find the attached solution Qvw.
** Modified Script****
Quelle:
LOAD * INLINE [
Erster, Zweiter, Primärschlüßel
a, 22, aaa
ab, 333, bbb
abc, 4444, ccc
abcd, 4444, ddd
abcde, 4444, eee
ab, 55555, fff,
ab, 1, ggg
ab, 22, hhh
];
Ergebniss:
LOAD
Primärschlüßel as Sekundärschlüßel
Resident Quelle;
for i = 0 to (NoOfRows('Quelle'))-1;
let vLänge_Erster = len(peek('Erster',$(i),'Quelle'));
let vLänge_Zweiter = len(peek('Zweiter',$(i),'Quelle'));
Trace Durchgang i: $(i);
Trace Länge von 'Erster': $(vLänge_Erster);
Trace Länge von 'Zweiter': $(vLänge_Zweiter);
// if vLänge_Erster >= vLänge_Zweiter Then
//
// Trace genommern wird Wert aus Feld:'Erster';
// left Join (Ergebniss)
Table:
load
if( $(vLänge_Erster) >= $(vLänge_Zweiter),peek('Erster',$(i),'Quelle'), peek('Zweiter',$(i),'Quelle')) as BestOf,
$(i) as i,
peek('Primärschlüßel',$(i),'Quelle') as Sekundärschlüßel
Resident Ergebniss;
//
// else
//
// Trace genommern wird Wert aus Feld: 'Zweiter';
//
// left Join (Ergebniss)
//
// load
//
// peek('Zweiter',$(i),'Quelle') as BestOf,
//
// $(i) as i,
//
// peek('Primärschlüßel',$(i),'Quelle') as Sekundärschlüßel
//
// Resident Ergebniss;
//
// ENDIF
//
// Trace -----------;
next
//NoConcatenate
left Join (Ergebniss)
LOAD
*
Resident Table;
DROP Table Table,Quelle;
********************************************* SCRIPT END ***********************************************
Regards,
Bhasker Kumar
Thank you Bhasker, that worked.
Always welcome