Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

Announcements
Talk to Experts Tuesday, Live Q&A, September 22: Moving from QlikView to Qlik Sense. REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Not applicable

Can someone please explain this behaviour?

Hi Everyone

I am loading two tables in Qlikview and I getting two strange results.

1 - When performing a left join I get "tablename-1". See image below.

2 - When perfomring a left join I am getting the same number of records.

Below I have posted the script execution dialog and the script itself. Can someone shed some light on the issue? if there is an issue at all

Untitled.pngUntitled_2.png

4 Replies
Highlighted

What is the issue you area facing

Before develop something, think If placed (The Right information | To the right people | At the Right time | In the Right place | With the Right context)
Not applicable

Hi Anil

Please see the question stem:

1 - When performing a left join I get "tablename-1". See image below.

2 - When perfomring a left join I am getting the same number of records.

Highlighted
Creator II
Creator II

you are getting the tablename-1 as you don't name the table in the script but this is usual behaviour and nothing to worry about as you are joining the table. If you didn't join it, it would be named that.

As for getting the same number of records - your join is a one to many so when you join the records from Finance_OrderItemHeader.qvd in the final load, you are loading the many rows from that table as they have the same %Key_ItemNumber. This is the same table you load at the top and then drop.

What are you trying to achieve here? If you want distinct rows, then ensure you use the Distinct keyword.

Highlighted
Not applicable

Hi Tracy

Thanks for your reply. Very helpful. I now understand why the table is called tablename-1.

Regarding the second part of my query I ran a test with dummy data and it turns out its normal behaviour but in my opinion very misleading. When qlikview performed the left join I was expecting to get the only the number of rows that matched not the number of rows of the entire table.

I ran a quick test with inline tables please see below. I left join a table and for that task in the dialog box I get the entire number of records not only the number of records that were joined. In this case it only joined 5 records but it still showed 10 records fetched.

//=========================================================================================

// LOAD ORDER ITEM HEADER

//=========================================================================================

Order_item_header:

LOAD * INLINE [

    key_itemnumber, value1

    1, a

    2, b

    3, c

    4, d

    5, e

    6, f

    7, g

    8, h

    9, i

    10, j

];

//=========================================================================================

// LOAD EXCHANGE RATE

//=========================================================================================

Exchange_rate:

LOAD * INLINE [

    key_pblid, key_itemnumber, value2

    1,1, a

    2,2, b

    3,3, c

    4,4, d

    5,5, e

  6,11,k

  7,12,l

]

WHERE EXISTS(key_itemnumber);

//=========================================================================================

// DROP TABLE

//=========================================================================================

DROP TABLE Order_item_header;

//=========================================================================================

// LEFT JOIN ORDER ITEM HEADER TO EXCHANGE RATE

//=========================================================================================

LEFT JOIN(Exchange_rate)

LOAD * INLINE [

    key_itemnumber, value1

    1, a

    2, b

    3, c

    4, d

    5, e

    6, f

    7, g

    8, h

    9, i

    10, j

];

Untitled.pngCapture.PNG