Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Left join question

File_1 content:

Channel_CategoryOrder_category
DR
RT
WH
WHPROJ
WHSPOR
WHSPPJ

File_2 content:

Channel_stringChannel
DR||DE
RT||RE
WH||TR
WH||PROJPRJ
WH||SPORTR
WH||SPPJPRJ

Table_A:

Load Channel_Category,

         Order_category,

         Channel_Category&'||'&Order_Category as Channel_String

From File_1;

Left Join(Table_A)

Load Channel_String,

         Channel

From File_2;

Then I display the table box of Table A is as below

Channel_CategoryOrder_categoryChannel_StringChannel
DRDR||-
RTRT||-
WHWH||-
WHPROJWH||PROJPRJ
WHSPORWH||SPORTR
WHSPPJWH||SPPJPRJ

Look at the table box, seems like the 'left join' for the first 3 records fails returns a valid value  (yellow highlighted). Is this due to a 'blank' value in the load '&' statement? Or I am guessing that there is a invisible character in File_1 which causes the the failure, because there is no invisible characters in File_2 key field.

I am expecting the first 3 entry on the field 'Channel' returns 'DR', 'RE', 'TR'

Anyone shares light? Thanks.

Jack

11 Replies
its_anandrjs

Try with this load script

Table_A:

LOAD *, Channel_Category&'||'&Order_Category as Channel_String;

LOAD * INLINE [

    Channel_Category, Order_Category

    DR,

    RT,

    WH,

    WH, PROJ

    WH, SPOR

    WH, SPPJ];

Left Join

LOAD * INLINE [

    Channel_String, Channel

    DR|| ,DE

    RT|| ,RE

    WH|| ,TR

    WH||PROJ, PRJ

    WH||SPOR, TR

    WH||SPPJ, PRJ];

Not applicable
Author

Thanks Anand, but it does not work.

jagan
Luminary Alumni
Luminary Alumni

Hi,

Try Trim()

Table_A:

LOAD *, Channel_Category&'||'& Trim(Order_Category) as Channel_String;

LOAD * INLINE [

    Channel_Category, Order_Category

    DR,

    RT,

    WH,

    WH, PROJ

    WH, SPOR

    WH, SPPJ];

Left Join

LOAD * INLINE [

    Channel_String, Channel

    DR|| ,DE

    RT|| ,RE

    WH|| ,TR

    WH||PROJ, PRJ

    WH||SPOR, TR

    WH||SPPJ, PRJ];


Regards,

Jagan.

crusader_
Partner - Specialist
Partner - Specialist

Hi, Jack

Firstly, check wether is a missprint:

Left Join(Table_A)

Load Channel_String,

File_2 content:

Category_stringChannel

Also check whether is Order_Category in first source is not NULL, but just empty string.

Hope this helps.

Andrei

jonathandienst
Partner - Champion III
Partner - Champion III

Hi

I tested that script and it works for me (Channel is populated for all rows)Temp.png

Regards

Jonathan

Logic will get you from a to b. Imagination will take you everywhere. - A Einstein
Not applicable
Author

Hi Andrei, this was a type error. I was attempting 'Channel_string'.

This is also what i am doubting: the field Order_Category is not null but with invisible characters...

The first file is a QVD file, i am not able to confirm that if it is NULL;

The second file is a flat file i create locally.

Jack

Not applicable
Author

Hi Jagan,

Trim() works, thanks a lot! So do you think it is an issue with invisible characters?

Jack

crusader_
Partner - Specialist
Partner - Specialist

Hi, Jack

You can easy check whether the string empty or not if you create additional coloumn len(Order_category).

Empty string should return 0. To delete spaces use ltrim() , rtrim() - functions or purgechar().

Hope this helps.

Andrei

jagan
Luminary Alumni
Luminary Alumni

May be some blank spaces in the field.  Please close this thread.

Regards,

jagan.