Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
alexanderscheck
Contributor II
Contributor II

Calculation during import

Hello at all,

I've got the following import script:

LIB CONNECT TO 'MUCOBSPSQL001 (root_schecka)';

Auftraege:
LOAD AUFTRAG_ID AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR AS [AUF.AUFTRAG_NR],
PA_START AS [AUF.AUFTRAG_START],
PA_ENDE AS [AUF.AUFTRAG_ENDE],
PAUSEN_DAUER AS [AUF.PAUSEN_DAUER],
AUSSCHUSS_KG AS [AUF.AUSSCHUSS_KG],
ABFALL_KG AS [AUF.ABFALL_KG],
ZWEITE_WARE_KG AS [AUF.ZWEITE.WARE_KG],
PERSONEN_ANZAHL AS [AUF.PERSONEN_ANZAHL],
AUFTRAG_ZEILE AS [AUF.AUFTRAG_ZEILE],
[PA_ENDE]-[PA_START] AS [AUF.auftragsdauer]; //Berechnet die Auftragsdauer durch Ende Zeitstempel - Start Zeitstempel

[E_AUFTRAEGE]:
SELECT "AUFTRAG_ID",
"AUFTRAG_NR",
"PA_START",
"PA_ENDE",
"PAUSEN_DAUER",
"AUSSCHUSS_KG",
"ABFALL_KG",
"ZWEITE_WARE_KG",
"PERSONEN_ANZAHL",
"AUFTRAG_ZEILE"
FROM "qlik_importer_db".dbo."E_AUFTRAEGE";

LIB CONNECT TO 'MUCOBSPSQL001 (root_schecka)';

Kisten:
LOAD KISTE_BRUTTO_KG AS [KIS.KISTE_BRUTTO_KG],
AUFTRAG_ID_ZIEL AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR_ZIEL AS [KIS.AUFTRAG_NR_ZIEL];

[E_KISTEN]:
SELECT "KISTE_BRUTTO_KG",
"AUFTRAG_ID_ZIEL",
"AUFTRAG_NR_ZIEL"
FROM "qlik_importer_db".dbo."E_KISTEN";

Here I make a calculation with two table fields: [PA_ENDE]-[PA_START] AS [AUF.auftragsdauer]; 

How can I make a calculation like this, with two or more table fields, which are on different tables?

("AUSSCHUSS_KG",
"ABFALL_KG",
"ZWEITE_WARE_KG",
and 
"KISTE_BRUTTO_KG")

 

Thanks for help

Alex

Labels (2)
1 Solution

Accepted Solutions
jyothish8807
Master II
Master II

If you want to do this in script, then try like this. The only risk is that you have to make sure both table have a 1:1 association (a 1:M or M:1) association will create issues.

LIB CONNECT TO 'MUCOBSPSQL001 (root_schecka)';

[E_AUFTRAEGE]:
LOAD

num(trim(AUFTRAG_ID)) AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR AS [AUF.AUFTRAG_NR],
PA_START AS [AUF.AUFTRAG_START],
PA_ENDE AS [AUF.AUFTRAG_ENDE],
PAUSEN_DAUER AS [AUF.PAUSEN_DAUER],
AUSSCHUSS_KG AS [AUF.AUSSCHUSS_KG],
ABFALL_KG AS [AUF.ABFALL_KG],
ZWEITE_WARE_KG AS [AUF.ZWEITE.WARE_KG],
PERSONEN_ANZAHL AS [AUF.PERSONEN_ANZAHL],
AUFTRAG_ZEILE AS [AUF.AUFTRAG_ZEILE],
[PA_ENDE]-[PA_START] AS [AUF.auftragsdauer]; //Berechnet die Auftragsdauer durch Ende Zeitstempel - Start Zeitstempel


SELECT "AUFTRAG_ID",
"AUFTRAG_NR",
"PA_START",
"PA_ENDE",
"PAUSEN_DAUER",
"AUSSCHUSS_KG",
"ABFALL_KG",
"ZWEITE_WARE_KG",
"PERSONEN_ANZAHL",
"AUFTRAG_ZEILE"
FROM "qlik_importer_db".dbo."E_AUFTRAEGE";

join ( [E_AUFTRAEGE] )   //You can use left,right or inner join based on your data

[E_KISTEN]:
LOAD

KISTE_BRUTTO_KG AS [KIS.KISTE_BRUTTO_KG],
num(trim(AUFTRAG_ID_ZIEL)) AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR_ZIEL AS [KIS.AUFTRAG_NR_ZIEL];

SELECT "KISTE_BRUTTO_KG",
"AUFTRAG_ID_ZIEL",
"AUFTRAG_NR_ZIEL"
FROM "qlik_importer_db".dbo."E_KISTEN";

 

Noconcatenate

Mastertable:

Load *,

[KIS.KISTE_BRUTTO_KG] + [AUF.ZWEITE.WARE_KG]  as NewCalculatedField

resident [E_AUFTRAEGE];

Drop table [E_AUFTRAEGE];

Best Regards,
KC

View solution in original post

10 Replies
jyothish8807
Master II
Master II

Hi Alex,

If you want to make the calculations in the script, then you will have to join these tables and make it as one table based on the keys or you will have to make a bridge table between these tables and gets these fields into bridge table and do the calculation.

If you cannot join the tables and only a simply association is the only possibility, then you will have to do this calculations in the front end directly (fields from different table)

Best Regards,
KC
alexanderscheck
Contributor II
Contributor II
Author

Hi KC,
Thank you for the answer. I tried to join the to tables, but this won't work. 
(See Screenshot)

Screenshot.JPG

How can I make a bridge table for the calculation?

Thank you for your help.

regards Alex

jyothish8807
Master II
Master II

Hi,

Can you please share a snapshot of your data model.

Also try the expression like this:

Aggr(sum("KISTE_BRUTTO_KG"),[auftrag_id])                        //the same goes for other fields

Best Regards,
KC
alexanderscheck
Contributor II
Contributor II
Author

Hi, here is a screenshot of my data model:

Screenshot_Datenmodell.JPG

I also tried your suggested expression with this result:

Screenshot2.JPG

 

Thank you for your help.

regards Alex

jyothish8807
Master II
Master II

Try this, It seems the key are not matching because of format issue:

LIB CONNECT TO 'MUCOBSPSQL001 (root_schecka)';

Auftraege:
LOAD

num(trim(AUFTRAG_ID)) AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR AS [AUF.AUFTRAG_NR],
PA_START AS [AUF.AUFTRAG_START],
PA_ENDE AS [AUF.AUFTRAG_ENDE],
PAUSEN_DAUER AS [AUF.PAUSEN_DAUER],
AUSSCHUSS_KG AS [AUF.AUSSCHUSS_KG],
ABFALL_KG AS [AUF.ABFALL_KG],
ZWEITE_WARE_KG AS [AUF.ZWEITE.WARE_KG],
PERSONEN_ANZAHL AS [AUF.PERSONEN_ANZAHL],
AUFTRAG_ZEILE AS [AUF.AUFTRAG_ZEILE],
[PA_ENDE]-[PA_START] AS [AUF.auftragsdauer]; //Berechnet die Auftragsdauer durch Ende Zeitstempel - Start Zeitstempel

[E_AUFTRAEGE]:
SELECT "AUFTRAG_ID",
"AUFTRAG_NR",
"PA_START",
"PA_ENDE",
"PAUSEN_DAUER",
"AUSSCHUSS_KG",
"ABFALL_KG",
"ZWEITE_WARE_KG",
"PERSONEN_ANZAHL",
"AUFTRAG_ZEILE"
FROM "qlik_importer_db".dbo."E_AUFTRAEGE";

LIB CONNECT TO 'MUCOBSPSQL001 (root_schecka)';

Kisten:
LOAD

KISTE_BRUTTO_KG AS [KIS.KISTE_BRUTTO_KG],
num(trim(AUFTRAG_ID_ZIEL)) AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR_ZIEL AS [KIS.AUFTRAG_NR_ZIEL];

[E_KISTEN]:
SELECT "KISTE_BRUTTO_KG",
"AUFTRAG_ID_ZIEL",
"AUFTRAG_NR_ZIEL"
FROM "qlik_importer_db".dbo."E_KISTEN";

 

Best Regards,
KC
alexanderscheck
Contributor II
Contributor II
Author

Now I have this result:

Screenshot3.JPG

But, how can I make a calculation with fields of both tables?

I need the calculation in the import script. Is it possible to combine the to tables for a calculation?

jyothish8807
Master II
Master II

If you want to do this in script, then try like this. The only risk is that you have to make sure both table have a 1:1 association (a 1:M or M:1) association will create issues.

LIB CONNECT TO 'MUCOBSPSQL001 (root_schecka)';

[E_AUFTRAEGE]:
LOAD

num(trim(AUFTRAG_ID)) AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR AS [AUF.AUFTRAG_NR],
PA_START AS [AUF.AUFTRAG_START],
PA_ENDE AS [AUF.AUFTRAG_ENDE],
PAUSEN_DAUER AS [AUF.PAUSEN_DAUER],
AUSSCHUSS_KG AS [AUF.AUSSCHUSS_KG],
ABFALL_KG AS [AUF.ABFALL_KG],
ZWEITE_WARE_KG AS [AUF.ZWEITE.WARE_KG],
PERSONEN_ANZAHL AS [AUF.PERSONEN_ANZAHL],
AUFTRAG_ZEILE AS [AUF.AUFTRAG_ZEILE],
[PA_ENDE]-[PA_START] AS [AUF.auftragsdauer]; //Berechnet die Auftragsdauer durch Ende Zeitstempel - Start Zeitstempel


SELECT "AUFTRAG_ID",
"AUFTRAG_NR",
"PA_START",
"PA_ENDE",
"PAUSEN_DAUER",
"AUSSCHUSS_KG",
"ABFALL_KG",
"ZWEITE_WARE_KG",
"PERSONEN_ANZAHL",
"AUFTRAG_ZEILE"
FROM "qlik_importer_db".dbo."E_AUFTRAEGE";

join ( [E_AUFTRAEGE] )   //You can use left,right or inner join based on your data

[E_KISTEN]:
LOAD

KISTE_BRUTTO_KG AS [KIS.KISTE_BRUTTO_KG],
num(trim(AUFTRAG_ID_ZIEL)) AS [auftrag_id], //Verknüpfung mit anderen Tabelle über Auftrags ID
AUFTRAG_NR_ZIEL AS [KIS.AUFTRAG_NR_ZIEL];

SELECT "KISTE_BRUTTO_KG",
"AUFTRAG_ID_ZIEL",
"AUFTRAG_NR_ZIEL"
FROM "qlik_importer_db".dbo."E_KISTEN";

 

Noconcatenate

Mastertable:

Load *,

[KIS.KISTE_BRUTTO_KG] + [AUF.ZWEITE.WARE_KG]  as NewCalculatedField

resident [E_AUFTRAEGE];

Drop table [E_AUFTRAEGE];

Best Regards,
KC
jyothish8807
Master II
Master II

You can also add two fields on the frontend as well.

Measure = sum([KIS.KISTE_BRUTTO_KG] )+ sum([AUF.ZWEITE.WARE_KG] )

Best Regards,
KC
alexanderscheck
Contributor II
Contributor II
Author

Hey, I think with this variant it will work as I thought it would.

Thank you very much for your help.

regards Alex