2017-10-04 3 views
0

J'ai téléchargé dans Qlik mon code sql et je veux faire des calculs dans Qlik et ajouter une colonne de ces calculs personnalisés. Comment puis-je faire ceci? Mon code:Ajouter une colonne personnalisée à la table SQL dans Qlik

SQLAS: 
SQL 

select 
costs.FLI, costs.COMPANY_NAME, costs.QTY_REC,  
fleet.COUNT_OF_TAILS_NO, 
pricel.NE_pricel, 
pn.atas   

from      
(select * 
from FLI_1 

union all 

select * 
from FLI_2 
) costs 

left join fleet on (costs.fli=fltc.fleet .fli) 

left join (select * from price 
      ) pricel on costs.fli=pricel.fli 
left join (select * from atata) atas on costs.fli=atas.fli 

; 

LOAD SQLAS, 

    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
    resident SQLAS; 

Cependant, je reçois une erreur: enter image description here

Si je supprime resident SQLAS; je vois qu'il n'y a pas d'erreur, cependant, je ne peux pas trouver la nouvelle colonne créée.

Comment devrais-je correctement ajouter une colonne à une instruction SQL Qlik?

Répondre

2
LOAD 
    SQLAS, 
    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
Resident 
    SQLAS; 

Cette déclaration se traduit à: charge à partir SQLAS tableau 2 champs: SQLAS et FLI (avec quelques transformations sur elle).

Basé sur votre sql la table SQLAS ne pas avoir le champ SQLAS. Si vous voulez charger tous les champs, utilisez *. Ensuite, la charge résidente ressemblera:

SQLAS1: 
LOAD 
    *, 
    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
Resident 
    SQLAS; 

Après cette charge, vous devez déposer la table SQLAS originale, sinon vous vous retrouverez avec massif Synthetic Table

Drop Table SQLAS;

Une autre aproche est d'utiliser Preceding LOAD pour éviter resident load et syntetic keys

SQLAS: 
Load 
    *, 
    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
; 
SQLAS: 
SQL 
select 
    costs.FLI, costs.COMPANY_NAME, costs.QTY_REC, 
    ... the rest of the original sql 
; 

Le script ci-dessus produira la même table de résultats mais sans avoir besoin de charger tout dans une nouvelle table.

+0

Merci! Ça m'a aidé – orangutangas