Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Nested If statement with Match

Hi Guys,

Why doesn't the following If statement show me the last three fields that i created? 'JJJJ', 'KKKK' and 'LLLL' (The Match syntax ones), i can see from AAAA to IIII.

Thanks

[PRODUCT]:

Mapping LOAD

SID_PRODUCT,

if(PRODUCT_FAMILY_DESC='1','AAAA',

            if(PRODUCT_FAMILY_DESC='2','BBBB',

            if(PRODUCT_FAMILY_DESC='3','CCCC',

            if(PRODUCT_FAMILY_DESC='4','DDDD',

                        if(PRODUCT_FAMILY_DESC='5','EEEE',

if(PRODUCT_FAMILY_DESC='6','FFFF',

if(PRODUCT_FAMILY_DESC='7','GGGG',

                                    if(PRODUCT_FAMILY_DESC='8','HHHH',

                                    if (PRODUCT_FAMILY_DESC='9','IIII',

if(MATCH(PRODUCT_FAMILY_DESC,'3','4'),'JJJJ',

If(match(PRODUCT_FAMILY_DESC,’4','5'),'KKKK',

IF(MATCH(PRODUCT_FAMILY_DESC,'6','7'),'LLLL')))))))))))) as PRODUCT_FAMILY_DESC

    

FROM [lib://QVD_FOLDER (XXXXXXX)/PRODUCT.qvd]

(qvd);

15 Replies
sunny_talwar
MVP
MVP

So lets say you have this row of data:

Dim1,     Dim2,     Dim3,     PRODUCT_FAMILY_DESC

P,           PP,         PPP,       1


This should give you


1)

Dim1,     Dim2,     Dim3,     PRODUCT_FAMILY_DESC,     Group

P,          PP,         PPP,       AAAA,                                     Group 1


or


2)

Dim1,     Dim2,     Dim3,     PRODUCT_FAMILY_DESC

P,           PP,         PPP,       AAAA

P,           PP,         PPP,       Group 1

Are you looking for option 1 or option 2 as output?

Anonymous
Not applicable
Author

Option 2

sunny_talwar
MVP
MVP

Then you need something like this:

TempPRODUCT:

LOAD SID_PRODUCT,

          PRODUCT_FAMILY_DESC,

          Pick(Match(PRODUCT_FAMILY_DESC, 1, 2, 3, 4, 5, 6, 7, 8, 9), 'AAAA', 'BBBB', 'CCCC', 'DDDD', 'EEEE', 'FFFF', 'GGGG', 'HHHH', 'IIII') as NEW_PRODUCT_FAMILY_DESC

FROM QVD;

Concatenate(TempPRODUCT)

LOAD SID_PRODUCT,

        PRODUCT_FAMILY_DESC,

          'Group 1' as NEW_PRODUCT_FAMILY_DESC

Resident TempPRODUCT

Where Match(PRODUCT_FAMILY_DESC, 1, 2, 4, 5);


Concatenate(TempPRODUCT)

LOAD SID_PRODUCT,

        PRODUCT_FAMILY_DESC,

          'Group 2' as NEW_PRODUCT_FAMILY_DESC

Resident TempPRODUCT

Where Match(PRODUCT_FAMILY_DESC, 6, 7);


Concatenate(TempPRODUCT)

LOAD SID_PRODUCT,

        PRODUCT_FAMILY_DESC,

          'Group 3' as NEW_PRODUCT_FAMILY_DESC

Resident TempPRODUCT

Where Match(PRODUCT_FAMILY_DESC, 1, 3, 6, 9);


But this need to be joined to your fact table instead of a mapping load because mapping load will skip the duplicate NEW_PRODUCT_FAMILY_DESC per SID_PRODUCT.

HTH

Best,

Sunny

Anonymous
Not applicable
Author

I'll give it a go.

Thanks

Anonymous
Not applicable
Author

Cheers mate that worked a treat.

sunny_talwar
MVP
MVP

Awesome