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

Announcements
Join us in Zurich on Sept 24th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to create a field from filelds of 2 different tables

The problem is that AccountingPrice (accounting price for 1 unit) is stored in one table (Products) and SalesPrice in another (Sales)

I calculate Margins in tables and graphs as

Maring=sum(SalesPrice-AccountingPrice*Amount)

But is slows down application, so the best way as I see it to calculate Margin as a field in one of the tables, of create another table and

joing it to one of them.. resident ?

Example:


Sales:
LOAD iddoc as idjournal,
sp283 as IdProduct,
sp285 as Pricefor1,
sp284 as Amount,
//sp285*sp284 as PricelistPrice (why it doesn't work??)
sp286 as SalesPrice,
sp287 as tax,
(sp286+sp287) as Sales;
SQL SELECT *
FROM `DT294`
where sp285>0;

Products:
LOAD id as IdProduct,
descr as Product,
sp141 as AccountigPrice ;
SQL SELECT *
FROM `sc156` where isfolder=2;


and why doesn't work?:

Let Maring=sum(SalesPrice-AccountingPrice*Amount)

So how to create a field from fields of 2 different tables into one?

1 Solution

Accepted Solutions
Not applicable
Author

Here it the test script


/*******This table is just for data*******/
salesData:
Load * INLINE
[sp283,sp285, sp284, sp286
PR1 ,1,4,20
PR2 ,3,5,25
];

Sales:
LOAD
sp283 as IdProduct,
sp285 as Pricefor1,
sp284 as Amount,
sp285*sp284 as PricelistPrice ,
sp286 as SalesPrice
RESIDENT salesData;
/********this table is for data only *******/
ProductsData:
Load * INLINE
[id , descr, sp141
PR1,Product 1, 15
PR2, product 2, 10
];
Product:
LOAD id as IdProduct,
descr as Product,
sp141 as AccountigPrice
RESIDENT ProductsData;
Left Join(Sales)
LOAD
IdProduct,
AccountigPrice
RESIDENT Product;
SalesAggr:
Load
IdProduct,
sum((SalesPrice-AccountigPrice)*Amount) as Margin
RESIDENT Sales
GROUP BY IdProduct;


View solution in original post

7 Replies
Not applicable
Author

Hi,

You should be able to do it in the chart itself, If not you can load in the script also,

I just put together small QVW for you, Please look in to it.

I Hope that help.

Not applicable
Author

There is no problem in charts,but in brings more calculations to the application,

so I want to find the way to creaty new field margin in the script..

please make qvw openable in PersonalEdition..

Not applicable
Author

Instead of this:


Alexadner Gonchar wrote:Sales:
LOAD iddoc as idjournal,
sp283 as IdProduct,
sp285 as Pricefor1,
sp284 as Amount,
//sp285*sp284 as PricelistPrice (why it doesn't work??)
sp286 as SalesPrice,
sp287 as tax,
(sp286+sp287) as Sales;
SQL SELECT *
FROM `DT294`
where sp285>0;

Products:
LOAD id as IdProduct,
descr as Product,
sp141 as AccountigPrice ;
SQL SELECT *
FROM `sc156` where isfolder=2;


Do this:


Sales:
LOAD iddoc as idjournal,
sp283 as IdProduct,
sp285 as Pricefor1,
sp284 as Amount,
//sp285*sp284 as PricelistPrice (why it doesn't work??)
sp286 as SalesPrice,
sp287 as tax,
(sp286+sp287) as Sales;
SQL SELECT *
FROM `DT294`
where sp285>0;

LEFT JOIN (Sales)
LOAD id as IdProduct,
descr as Product,
sp141 as AccountigPrice ;
SQL SELECT *
FROM `sc156` where isfolder=2;


Not applicable
Author

Here it the test script


/*******This table is just for data*******/
salesData:
Load * INLINE
[sp283,sp285, sp284, sp286
PR1 ,1,4,20
PR2 ,3,5,25
];

Sales:
LOAD
sp283 as IdProduct,
sp285 as Pricefor1,
sp284 as Amount,
sp285*sp284 as PricelistPrice ,
sp286 as SalesPrice
RESIDENT salesData;
/********this table is for data only *******/
ProductsData:
Load * INLINE
[id , descr, sp141
PR1,Product 1, 15
PR2, product 2, 10
];
Product:
LOAD id as IdProduct,
descr as Product,
sp141 as AccountigPrice
RESIDENT ProductsData;
Left Join(Sales)
LOAD
IdProduct,
AccountigPrice
RESIDENT Product;
SalesAggr:
Load
IdProduct,
sum((SalesPrice-AccountigPrice)*Amount) as Margin
RESIDENT Sales
GROUP BY IdProduct;




Not applicable
Author

Here it the test script


/*******This table is just for data*******/
salesData:
Load * INLINE
[sp283,sp285, sp284, sp286
PR1 ,1,4,20
PR2 ,3,5,25
];

Sales:
LOAD
sp283 as IdProduct,
sp285 as Pricefor1,
sp284 as Amount,
sp285*sp284 as PricelistPrice ,
sp286 as SalesPrice
RESIDENT salesData;
/********this table is for data only *******/
ProductsData:
Load * INLINE
[id , descr, sp141
PR1,Product 1, 15
PR2, product 2, 10
];
Product:
LOAD id as IdProduct,
descr as Product,
sp141 as AccountigPrice
RESIDENT ProductsData;
Left Join(Sales)
LOAD
IdProduct,
AccountigPrice
RESIDENT Product;
SalesAggr:
Load
IdProduct,
sum((SalesPrice-AccountigPrice)*Amount) as Margin
RESIDENT Sales
GROUP BY IdProduct;


Not applicable
Author

Devang,

Try to use "[ code ]" and "[ / code ]" without spaces tags for code. And use Preview before submit a post

Not applicable
Author

Thank you,

I did and the preview was correct, Some how it got misaaligned in the post, I corrected it now.