Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
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)
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
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)
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...