Saltar al contenido

¿Cuál es la sintaxis de una instrucción CASE en Crystal XI?

Un Usuario hizo la siguiente pregunta

Tengo dificultades para encontrar documentación para usar declaraciones CASE en Crystal Line. El administrador de mi base de datos no me permite escribir expresiones SQL, por lo que necesito ocultar el SQL a continuación en Crystal Syntax. ¿Alguien puede ayudarme? ¡¡Muchísimas gracias!!

Escoger

CASO

CUANDO los proyectos.ProjType son como ‘S%’ y luego ‘Centro comercial’

CUANDO los proyectos.ProjType son como ‘I%’ y luego ‘Industrial’

POR QUÉ proyecto: Tipo de proyecto como ‘O%’ y luego ‘Edificio de oficinas’

ELSE ‘Otro’

FIN

de proyectos

3 respuestas

  • Ex miembro

    Aquí está la sintaxis:

    seleccione {project.ProjType}

    caso es similar a ‘S%’: «‘Centro comercial»

    caso es similar a ‘I%’: «Industrias»

    el caso es similar a ‘O%’: «Edificio de oficinas»

    predeterminado: «Otro»

  • Ex miembro

    Hola David,

    Tengo que buscar ese todo el tiempo. Es muy fácil obtener ayuda con las fórmulas, pero se denominan sentencias ‘SELECT’, en lugar de sentencias CASE.

    Recuerdo que la sintaxis era:

    SELECT {field}
       Case <value>:
          action
       Case <another value>:
          another action
       Default:
          action; 
    

  • Ex miembro

    Suponemos que la columna XYZ contiene tanto números (1) como letras (cualquier alfabeto).

    Tengo una declaración de caso en SQL para convertir cualquier valor que no sea 1 en 0, luego obtengo una suma de esa columna.

    También me estoy agrupando con la Fila A, B, etc. para obtener la suma agregada de la columna XYZ para ese grupo.

    Ahora, para la función Crystal Reports, necesito resumir los valores en la columna XYZ para todos los grupos.

    Si intento usar una función de suma como se muestra a continuación, aparece un error que dice:

    «Requiere un campo numérico o un campo de tamaño de moneda aquí»

    (suma ({Command.XYZ}))

    Así que pensé si puedo usar una declaración de caso para cambiar los números a 0 antes de que sea probable que una suma lo resuelva. Pero tampoco pude encontrar que la declaración de caso a continuación funcione (Error: se requiere cadena).

    SELECCIONAR {Command.XYZ}

    Caso 1:

    1

    Defecto:

    0;