Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
imoratal
Creator
Creator

SENTENCIA IF EN UN SCRIPT

Hola tengo en un script dos tablas, una llamada cliente y otra zona, por ejemplo

cliente:

IdCliente;

zona:

IdZona;

Quiero poner un IF donde si IdCliente='a' entonces IdZona='ESPAÑA', el problema que tengo es que dentro de las tablas no puedo hacerlo porque no me reconoce el otro campo o lo estoy poniendo mal y fuera también me da fallo en el script

1 Solution

Accepted Solutions
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Ahora te sigo mejor !!!!!!!!

IF(IdCliente='57263', 'EXPORTACION', IF(IdZona='NACIONAL',IdZona,'EXPORTACION') ) AS IdZona,



IdZona tendrá valor 'EXPORTACION' cuando el cliente sea 57263 ; si la zona es Nacional tendrá valor Nacional ... el resto de idZonas tomarán valor EXPORTACION

View solution in original post

17 Replies
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Iván:

Puedes poner el LOAD completo de ambas tablas ?

Saludos

Joaquín

imoratal
Creator
Creator
Author

Es un poco largo, yo lo abrevié, pero este es...

ClientesYEnvios:

LOAD IdCliente,

    Cliente,

    Ciudad,

    DIVISA,

    Bloqueado,

    Provincia,

    "Codigo Postal",

    GrupoContable,

   //IdZona,

   // IF(IdZona='EUROPA','RESTOMUNDO',IdZona) as IdZona,

  IF(IdZona='NACIONAL',IdZona,'EXPORTACION') as IdZona,

    IdSubZona,

    IdAgente1,

    "DepartamentoGestión",

    DPTOGESTON,

    IdCliente & '-' & "IdDirecciónEnvío" AS Cliente_Envío,

    "IdDirecciónEnvío" as [DireccionesEnvioClientes.IdDirecciónEnvío],

    "NombreDirecciónEnvío" as [DireccionesEnvioClientes.NombreDirecciónEnvío],

    "DirecciónEnvío" as [DireccionesEnvioClientes.DirecciónEnvío],

    City as DireccionesEnvioClientes.City,

    "Phone No_" as [DireccionesEnvioClientes.Phone No_],

    Contact as DireccionesEnvioClientes.Contact,

    "Location Code" as [DireccionesEnvioClientes.Location Code],

    "Fax No_" as [DireccionesEnvioClientes.Fax No_],

    "Post Code" as [DireccionesEnvioClientes.Post Code],

    County as DireccionesEnvioClientes.County,

    "E-Mail" as [DireccionesEnvioClientes.E-Mail],

    IdComercial1,

    IdAgente2;

SQL SELECT *

FROM dbo."DW_ClienteYDirEnvio";

Zonas:

LOAD //IdZona,

//IF(IdZona='EUROPA','RESTOMUNDO',IdZona) as IdZona,

  IF(IdZona='NACIONAL',IdZona,'EXPORTACION') as IdZona,

// IF (FPC ='01/01/1753','NO HAY',FPC) as FPC,

    Zona;

SQL SELECT *

FROM dbo."DW_Zonas";

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

La tabla de clientes no tiene el campo idZona ... por tanto el error te lo dará siempre.

Intuyo que tu quieres hacer algo parecido a esto

Clientes:

LOAD  ...

          IF (Cliente='a', 'España', 'Extranjero') as idZona

Aunque no estoy muy seguro

Saludos

Joaquín

imoratal
Creator
Creator
Author

Si lo tiene mira la linea:

  IF(IdZona='NACIONAL',IdZona,'EXPORTACION') as IdZona,

Esa está sin comentar....

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Lo he visto.

En esta tabla no está al menos con ese nombre !!!!

SQL SELECT *

FROM dbo."DW_ClienteYDirEnvio";

Intenta poner la instrucción de mi mensaje anterior

imoratal
Creator
Creator
Author

No entiendo lo que me dices porque yo lo veo igual, mira he puesto esto y ahora me aparece en blanco el campo IdZona

ClientesYEnvios:

IF(IdCliente='57263','EXPORTACION','EXPORTACION') AND IF(IdZona='NACIONAL',IdZona,'EXPORTACION')  AS IdZona,

Zonas:

LOAD

  IF(IdZona='NACIONAL',IdZona,'EXPORTACION') as IdZona,

Zona;

SQL SELECT *

FROM dbo."DW_Zonas";

He reducido la tabla de clientes para que se vea mejor, pero los campos IdCliente e IdZona están en la primera tabla

imoratal
Creator
Creator
Author

En realidad lo que quiero es que si el cliente es el 57263 la IdZona sea EXPORTACION , luego hay otra sentencia que hace otra cosa, esa funciona bien

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Ahora te sigo mejor !!!!!!!!

IF(IdCliente='57263', 'EXPORTACION', IF(IdZona='NACIONAL',IdZona,'EXPORTACION') ) AS IdZona,



IdZona tendrá valor 'EXPORTACION' cuando el cliente sea 57263 ; si la zona es Nacional tendrá valor Nacional ... el resto de idZonas tomarán valor EXPORTACION

imoratal
Creator
Creator
Author

Estoy buscando una cosa que haga esto pero no me funciona pq repito el campo

IF(IdZona='NACIONAL',IdZona,'EXPORTACION')  AS IdZona,

     IF(IdCliente='57263','EXPORTACION',IdZona) AS IdZona,

Es decir las 2 sentencias a la vez