Cobol - Between in

   
Vista:

Between in

Publicado por Vane (2 intervenciones) el 13/12/2012 20:22:37
Hola! Antes de nada muchas gracias por vuestra ayuda! ;P
Tengo una duda, tengo un programa en pl1, supongo que al ser similar a cobol me podriais ayudar que recibe como dato de entrada, entre otros el campo tipo de consulta, de tal forma que si viene informado con:
- 0,buscariamos todos los registros de una tabla Db2.
- 1, solo los que el campo CodOperacion sea "0000" cadena de longitud 4
- 2 solo los que el campo Cod Operacion sea distinto de "0000"
Ahora mismo recupero todas las filas y las filtro fuera de la consulta db2,
puedo establecer una concion o definir el cursor de alguna forma para que dependiendo del tipo de consulta me devuelva los datos?
Con betwwen o un in?
Para las dos primeras haria un in con dos variables host pero no se como meter el not in... espero no haberme liado mucho!
Muchas gracias por vuestro tiempo.
Un saludo!
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

Between in

Publicado por SuperIndio (138 intervenciones) el 13/12/2012 22:53:03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
DECLARE
 
   Ini_Rango varchar(4):= '0000';
   Ini_Rango varchar(4):= '9999';
 
   c_CodOperacion varchar(4):= '0000';
 
BEGIN
   IF nTipoCons = 1 Then
       Ini_Rango := '0000'
       Fin_Rango := '9999'
 
       SELECT TA TA TA, TA TA TA... FROM TATATA
        WHERE CodOperacion BEWEEN @Ini_Rango AND @Fin_Rango
 
   ELSEIF nTipoCons = 2 Then
      Ini_Rango := '0000'
      Fin_Rango := '0000'
 
       SELECT TA TA TA, TA TA TA... FROM TATATA
        WHERE CodOperacion BEWEEN @Ini_Rango AND @Fin_Rango
 
   ELSE
       c_CodOperacion := '0000'
       SELECT TA TA TA, TA TA TA... FROM TATATA
       WHERE CodOperacion <> @c_CodOperacion
 
   END IF
   TA TA TA
   ...
   Y
   ...
   TA TA TA
END


ESPERO TE SIRVA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Between in

Publicado por vane (2 intervenciones) el 13/12/2012 23:01:28
Hola! Muchas gracias! por tu rapida contestación!
Ya habia pensado el el rango '0000' '9999' el caso es que como es un char ahi tanto pueden tener numeros como letras.
es decir tanto puede ser '9999' como 'zase' como '000t' , '0000'.... etc
Por eso para la opcion de consulta dos que seria iperaciones erroneas, solo puede ser distinto de 0000 que es una operación correcta.
y que en el programa solo puedo tener declarado un cursor, por lo que no puedo hacer el if else... cosas de mi analista....
Muchas graciias!!
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