Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
alejortizp
Contributor III
Contributor III

I get an error when grouping a table by group by in script

Hi good day,

I'm trying to group a table and I get Invalid expression, how can I solve this problem. This is my script:

CONTRATOS:
LOAD
NIT_IPS&'-'&COD_SERVICIO&'-'&IF(MODELO_CONTRATA='EVENTO','E','OTROS') AS LLAVE1,
COD_SERVICIO,
COD_SUBGRUPO as SUBGRUPO,
COD_GRUPO AS GRUPO,
DESCR_SERVICIO AS DESC_SERVICIO,
ESTADO_CONTRATO,
CONTRATO_ENTIDAD,
CONTRATO_LEGAL,
NIVEL_COMPLEJIDAD,
MODELO_CONTRATA,
IF(trim(MODELO_CONTRATA)='EVENTO','E','OTROS') AS TIPO_CONTRATO,
DATE(Date#(min(FECHAINICIO),'DD/MM/YYYY')) AS FECHAINICIO,
DATE(Date#(max(FECHAFINAL),'DD/MM/YYYY')) AS FECHAFINAL,
// AddMonths(DATE(Date#(FECHAINICIO,'DD/MM/YYYY')),-1) AS FECHAINICIO_ANTERIOR,
PERIODO_TARIFA,
max(VALOR_CONTRATO) as VALOR_CONTRATO,
COSTO_MAYOR,
COSTO_MENOR,
PVP,
PORC_VAR,
INCLUYE,
MANUAL_TARIFARIO,
max(VALOR_FINAL_SERVICIO) as VALOR_FINAL_SERVICIO,
TIPO_DE_CONTRATO,
NIT_IPS ,
RAZON_SOCIAL ,
NOMBRE_SEDE
FROM [lib://qvdsalud (integrasavia_svcqlik)/Contratos.Qvd]
(qvd)
Group by CONTRATO_LEGAL,NIT_IPS,COD_SERVICIO;

Labels (1)
1 Solution

Accepted Solutions
ecolomer
Master II
Master II

Hola,

Perdona que te conteste en español pero me puedo explicar mejor.
Para hacer un GROUP sobre una tabla, el resto de los campos deben ser de valor único para cada valor de la variable o campo por el que agrupas o bien debe ser el resultado de una operación del tipo SUM, COUNT, MAX, MIN, etc

Para que lo puedas comprobar,  testea el resultado de:

CONTRATOS:
LOAD

COD_SERVICIO,

CONTRATO_LEGAL,

PERIODO_TARIFA,
max(VALOR_CONTRATO) as VALOR_CONTRATO,
max(COSTO_MAYOR) as Costo_Mayor,
min(COSTO_MENOR) as Costo_Menor,
PVP,

max(VALOR_FINAL_SERVICIO) as VALOR_FINAL_SERVICIO,

NIT_IPS 


FROM [lib://qvdsalud (integrasavia_svcqlik)/Contratos.Qvd]
(qvd)
Group by CONTRATO_LEGAL,NIT_IPS,COD_SERVICIO;

 

Y comprueba que si funciona. Luego añade algún otro valor y comprueba que te da error

Espero haberte ayudado.

Saludos,

Enrique COlomer

View solution in original post

2 Replies
ecolomer
Master II
Master II

Hola,

Perdona que te conteste en español pero me puedo explicar mejor.
Para hacer un GROUP sobre una tabla, el resto de los campos deben ser de valor único para cada valor de la variable o campo por el que agrupas o bien debe ser el resultado de una operación del tipo SUM, COUNT, MAX, MIN, etc

Para que lo puedas comprobar,  testea el resultado de:

CONTRATOS:
LOAD

COD_SERVICIO,

CONTRATO_LEGAL,

PERIODO_TARIFA,
max(VALOR_CONTRATO) as VALOR_CONTRATO,
max(COSTO_MAYOR) as Costo_Mayor,
min(COSTO_MENOR) as Costo_Menor,
PVP,

max(VALOR_FINAL_SERVICIO) as VALOR_FINAL_SERVICIO,

NIT_IPS 


FROM [lib://qvdsalud (integrasavia_svcqlik)/Contratos.Qvd]
(qvd)
Group by CONTRATO_LEGAL,NIT_IPS,COD_SERVICIO;

 

Y comprueba que si funciona. Luego añade algún otro valor y comprueba que te da error

Espero haberte ayudado.

Saludos,

Enrique COlomer

ecolomer
Master II
Master II

Hola,

Perdona que te conteste en español pero me puedo explicar mejor.
Para hacer un GROUP sobre una tabla, el resto de los campos deben ser de valor único para cada valor de la variable o campo por el que agrupas o bien debe ser el resultado de una operación del tipo SUM, COUNT, MAX, MIN, etc

Para que lo puedas comprobar,  testea el resultado de:

CONTRATOS:
LOAD

COD_SERVICIO,

CONTRATO_LEGAL,

PERIODO_TARIFA,
max(VALOR_CONTRATO) as VALOR_CONTRATO,
max(COSTO_MAYOR) as Costo_Mayor,
min(COSTO_MENOR) as Costo_Menor,
PVP,

max(VALOR_FINAL_SERVICIO) as VALOR_FINAL_SERVICIO,

NIT_IPS 


FROM [lib://qvdsalud (integrasavia_svcqlik)/Contratos.Qvd]
(qvd)
Group by CONTRATO_LEGAL,NIT_IPS,COD_SERVICIO;

 

Y comprueba que si funciona. Luego añade algún otro valor y comprueba que te da error

Espero haberte ayudado.

Saludos,

Enrique Colomer