Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
JJGil
Contributor II
Contributor II

Sacar fechas por temporada

Buenos días a todos!

Estoy con un problema que debe de ser una tonteria pero que no doy con la solución. Tengo una tabla con unos registros de fecha y quiero márcarlos por temporada. En el script tengo lo siguiente:

//Sacar campaña
IF(Month(FechaEntregaRequerida) >= 9, Year(FechaEntregaRequerida) & '-' & Year(FechaEntregaRequerida)+1, Year(FechaEntregaRequerida)-1 & '-' & Year(FechaEntregaRequerida)) AS Pedido_Campaña,
//

Ejemplo :

30-Agosto-2019 -> Temporada 2018 - 2019
01-Septiembre-2019 - > Temporada 2019 - 2020

JJGil_0-1602149037424.png

Por alguna razón, no me rellena cuando se da el caso verdadero del condicional.

Todo ayuda sera bienvenida, si hay otra forma mas efectiva de hacerlo. Gracias de antemano.

Saludos

 

2 Solutions

Accepted Solutions
JJGil
Contributor II
Contributor II
Author

Buenas de nuevo,

Ya he encontrado la solución:

//Sacar campaña
IF(Month(FechaEntregaRequerida) < 9, Num(Year(FechaEntregaRequerida)-1,'0000') & '-' & Num(Year(FechaEntregaRequerida),'0000'),
Num(Year(FechaEntregaRequerida),'0000') & '-' & Num(Year(FechaEntregaRequerida)+1,'0000')) AS Pedido_Campaña,
//

Lo dejo por aqui por si a alguien le hace falta.

Saludos

View solution in original post

rubenmarin

Hola, te iba a respodner pero me han acribillado a llamadas y no he podido responder antes...

Es por un tema de prioridad de operadores el & y el + tienen la misma prioridad, por lo que se aplica de izquierda a derecha, y cuando llega al +1 lo que tiene delante ya se ha transformado en una cadena de texto, con lo que no puede sumar 1.

Se pueden añadir paréntesis para cambiar la prioridad de las operaciones: primero las numéricas y luego la concatenación de textos: Year(FechaEntregaRequerida) & '-' & (Year(FechaEntregaRequerida)+1)

View solution in original post

3 Replies
JJGil
Contributor II
Contributor II
Author

Buenas de nuevo,

Ya he encontrado la solución:

//Sacar campaña
IF(Month(FechaEntregaRequerida) < 9, Num(Year(FechaEntregaRequerida)-1,'0000') & '-' & Num(Year(FechaEntregaRequerida),'0000'),
Num(Year(FechaEntregaRequerida),'0000') & '-' & Num(Year(FechaEntregaRequerida)+1,'0000')) AS Pedido_Campaña,
//

Lo dejo por aqui por si a alguien le hace falta.

Saludos

rubenmarin

Hola, te iba a respodner pero me han acribillado a llamadas y no he podido responder antes...

Es por un tema de prioridad de operadores el & y el + tienen la misma prioridad, por lo que se aplica de izquierda a derecha, y cuando llega al +1 lo que tiene delante ya se ha transformado en una cadena de texto, con lo que no puede sumar 1.

Se pueden añadir paréntesis para cambiar la prioridad de las operaciones: primero las numéricas y luego la concatenación de textos: Year(FechaEntregaRequerida) & '-' & (Year(FechaEntregaRequerida)+1)

JJGil
Contributor II
Contributor II
Author

Gracias por tu respuesta @rubenmarin 

Después de poner el post me he parado a ver las sintaxis y me dado cuenta de la prioridad de las concatenaciones. Tendré en cuenta el tema de los paréntesis.

PD: Me he nublado con las ganas de pillar el puente...