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

Announcements
Discover how organizations are unlocking new revenue streams: Watch 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.