SQL - Duda con CSUM

 
Vista:

Duda con CSUM

Publicado por Cristian (2 intervenciones) el 31/05/2018 11:08:41
Buenos días,

Primero de todo muchas gracias a todos, pero no veo otra que preguntaros ya que tengo un lío de trabajo importante y a ver si alguien puede ayudarme.


Os voy a poner lo que necesito y lo que tengo, yo creo que es a través de un CSUM combinado con CASE, pero no encuentro la forma:


TENGO:

Concepto | Num_asiento| DIA JULIANO
A 1 150
A 1 150
A 1 150
A 1 150
A 1 150
B 1 150
B 1 150
B 1 150
B 1 150
C 1 150
C 1 150
C 1 150
D 2 150


QUIERO:

Concepto | Num_asiento | dia juliano
A 1 150
A 1 150
A 1 150
A 1 150
A 1 150
B 1 450
B 1 450
B 1 450
B 1 450
C 1 550
C 1 550
C 1 550
D 2 150


Las condiciones para sumar al día juliano en caso de que el NUM_ASIENTO se repita, serían:

1
2
3
4
5
6
7
8
9
CASE
    WHEN Dia_juliano <  100
        THEN  400
    WHEN Dia_juliano BETWEEN 100 AND 199
        THEN 300
    WHEN Dia_juliano BETWEEN 200 AND 299
        THEN 200
    ELSE 100
END


-----UTILIZO TERADATA SQL ASSISTANT------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda con CSUM

Publicado por Cristian (2 intervenciones) el 01/06/2018 09:06:35
Buenos días,

Al final lo he resuelto de la siguiente manera, no he necesitado el CSUM, y dejo aquí la solución por si a alguien también le sirve.


1
2
3
4
5
6
7
8
9
SELECT Registro, Concepto, Num_Asiento, Dia_Juliano, DENSE_RANK() OVER(ORDER BY concepto) AS num,
num*100 AS xx,
Dia_Juliano+(
CASE
  WHEN num = 1
   THEN 0
 ELSE xx
end ) AS Jul_FIN
FROM xxx_prueba_julianos

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar