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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Calculated fields

Hi All,

I loaded EMP data by using the specified script:

EMP:

LOAD EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     SAL,

      DEPTNO,

     IF(COMM = 'NULL',0,COMM) as COMM,

     Alt(COMM, '',0) as COMM1

FROM

[//.......QV\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP);

Now I want create some calculated fields.

    (SAL+COMM) as SALARY,

     SALARY*12 as Total_SALARY,

     (SALARY/Total_SALARY)*100 as Salary_Percentage

How to achieve this.

Thanks in advance.

28 Replies
Not applicable
Author

Hi Anand,

I am getting the below error :

Field not found - <SALARY>

NewFinalTable: 

noconcatenate 

Load *, 

(SAL+COMM) as SALARY, 

SAL*12 as Total_SALARY, 

(SAL/(SALARY*12))*100 as Salary_Percentage 

Resident TMPEMP

rajeshvaswani77
Specialist III
Specialist III

Hi,

Try this.

EMP:
LOAD *,(SALARY/Total_SALARY)*100 as Salary_Percentage;
LOAD *,SALARY*12 as Total_SALARY;
LOAD *,(SAL+COMM) as SALARY;
LOAD EMPNO,
     ENAME,
     JOB,
     MGR,
     HIREDATE,
     SAL,
     DEPTNO,
     IF(COMM = 'NULL',0,COMM) as COMM,
     Alt(COMM, '',0) as COMM1
FROM
[//.......QV\EMP Details.xlsx]
(ooxml, embedded labels, table is EMP);

thanks,

Rajesh Vaswani

Not applicable
Author

Load *, Sum(SAL+(IF(COMM = 'NULL',0,COMM)) as Salary

          ,Sum(SAL+(IF(COMM = 'NULL',0,COMM))*12 as TotalSalary

          ,(Sum(SAL+(IF(COMM = 'NULL',0,COMM))/(Sum(SAL+(IF(COMM = 'NULL',0,COMM))*12))*100 as SalaryPercentage From Your table Group by

EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     SAL,

      DEPTNO,

     COMM

;

Please try this script

its_anandrjs
Champion III
Champion III

Hi,

And most specific if you use it like

TMPEMP:

LOAD EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     SAL,

     DEPTNO,

     IF(COMM = 'NULL',0,COMM) as COMM,

     Alt(COMM, '',0) as COMM1,

     SAL+COMM AS SALARY,

     (SAL+COMM)*12 AS Total_SALARY,

     ((SAL+COMM) / (SALARY*12)) * 100 AS Salary_Percentage

FROM

[//.......QV\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP);

Regards

Anand

Not applicable
Author

Hi Jagan,

Thank you the code.

But percentage is coming same for all the rows.

Please help.

Capture.JPG

its_anandrjs
Champion III
Champion III

Then try this

TMPEMP:

LOAD EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     SAL,

     DEPTNO,

     IF(COMM = 'NULL',0,COMM) as COMM,

     Alt(COMM, '',0) as COMM1,

     SAL+COMM AS SALARY,

     (SAL+COMM)*12 AS Total_SALARY,

     ((SAL+COMM) / ((SAL+COMM)*12)) * 100 AS Salary_Percentage

FROM

[//.......QV\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP);

Regards

Anand

Not applicable
Author

Hi kabilan180591,


I am getting below error:

Error in expression:

Nested aggregation not allowed

EMP:

Load *, Sum(SAL+(IF(COMM = 'NULL',0,COMM))) as Salary

          ,Sum(SAL+(IF(COMM = 'NULL',0,COMM))*12) as TotalSalary

          ,(Sum(SAL+(IF(COMM = 'NULL',0,COMM))/(Sum(SAL+(IF(COMM = 'NULL',0,COMM))*12))*100 as SalaryPercentage

       

FROM

[//........QV\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP)

group by

EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     DEPTNO

My code:

EMP:

Load *, Sum(SAL+(IF(COMM = 'NULL',0,COMM))) as Salary

          ,Sum(SAL+(IF(COMM = 'NULL',0,COMM))*12) as TotalSalary

          ,(Sum(SAL+(IF(COMM = 'NULL',0,COMM))/(Sum(SAL+(IF(COMM = 'NULL',0,COMM))*12))*100 as SalaryPercentage

       

FROM

[//...........QV\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP)

group by

EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     DEPTNO;

LOAD EMPNO,

    ENAME,

    JOB,

    MGR,

    HIREDATE,

    SAL,

    DEPTNO,

    COMM

 

   FROM

[//\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP);

EXIT Script;

data:

EMP
EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
7369SMITHCLERK790217-Dec-80800NULL20
7499ALLENSALESMAN769820-Feb-81160030030
7521WARDSALESMAN769822-Feb-81125050030
7566JONESMANAGER78392-Apr-812975NULL20
7654MARTINSALESMAN769828-Sep-811250140030
7698BLAKEMANAGER78391-May-812850NULL30
7782CLARKMANAGER78399-Jun-812450NULL10
7788SCOTTANALYST75669-Dec-823000NULL20
7839KINGPRESIDENTNULL17-Nov-815000NULL10
7844TURNERSALESMAN76988-Sep-811500030
7876ADAMSCLERK778812-Jan-831100NULL20
7900JAMESCLERK76983-Dec-81950NULL30
7902FORDANALYST75663-Dec-813000NULL20
7934MILLERCLERK778223-Jan-821300NULL10
DEPT
DEPTNODNAMELOC
10ACCOUNTINGNEW YORK
20RESEARCHDALLAS
30SALESCHICAGO
40OPERATIONSBOSTON

saumyashah90
Specialist
Specialist

Hi JJr,

Load normal script and than in resident use your expression.it will work.

EMP:

LOAD EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     SAL,

      DEPTNO,

     IF(COMM = 'NULL',0,COMM) as COMM,

     Alt(COMM, '',0) as COMM1

FROM

[//.......QV\EMP Details.xlsx]

(ooxml, embedded labels, table is EMP);

EMP_FINAL:

Load

EMPNO,

     ENAME,

     JOB,

     MGR,

     HIREDATE,

     SAL,

      DEPTNO,

COMM,

COMM1,

(SAL+COMM) as SALARY,

     SALARY*12 as Total_SALARY,

     (SALARY/Total_SALARY)*100 as Salary_Percentage

resident EMP;

Drop Table EMP;

This will work for sure.

Not applicable
Author

Hi Saumya,

I am getting the error as shown.

Capture.JPG

Not applicable
Author

Hi,

Based on your explanation, it should be same for all rows. i.e. (1/12 = 8.33). Explain your requirement.