none
PROBLEMAS al intentar hacer un cursor con una procedure almacenada RRS feed

  • Pregunta

  • Hola buenas tardes, tengo la necesidad en el trabajo de, a partir de este script de sql.

    SELECT cicmpy.cmp_code, cicmpy.Status, cicmpy.cmp_name, cicmpy.status_since, cicntp.FullName, cicntp.cnt_f_tel, cicntp.cnt_f_mobile, cicntp.cnt_email
    FROM cicmpy INNER JOIN
    cicntp ON cicmpy.cnt_id = cicntp.cnt_id
    WHERE (cicmpy.syscreated > GETDATE() - 30) AND (cicntp.cnt_f_tel IS NOT NULL) AND (cicntp.cnt_f_tel IN
    (SELECT cicntp_3.cnt_f_tel
    FROM cicmpy AS cicmpy_3 INNER JOIN cicntp_3 ON
    cicmpy_3.cnt_id = cicntp_3.cnt_id
    WHERE (cicmpy_3.cmp_status = 'E') OR (cicmpy_3.cmp_status = 'B')
    AND (cicmpy_3.status_since < GETDATE() - 30))) OR
    (cicmpy.syscreated > GETDATE() -30) AND
    (cicntp.cnt_f_mobile IS NOT NULL) AND (cicntp.cnt_f_mobile IN
    (SELECT cicntp_2.cnt_f_mobile
    FROM cicmpy AS cicmpy_2 INNER JOIN cicntp AS cicntp_2 ON cicmpy_2.cnt = cicntp_2.cnt_id
    WHERE (cicmpy_2.cmp_status = 'E') OR (cicmpy_2.cmp_status = 'B')
    AND (cicmpy_2.status_since < GETDATE() - 30))) OR
    (cicmpy.syscreated > GETDATE() - 30) AND (cicntp.cnt_email IS NOT NULL) AND (cicntp.cnt_email NOT LIKE '-@%') AND (cicntp.cnt_email NOT LIKE 'notiene%') AND (cicntp.cnt_email IN
    SELECT cicntp_1.cnt_email FROM
    cicmpy AS cicmpy_! INNER JOIN cicntp As cicntp_1 ON
    cicmpy_1.cnt_id
    WHERE (cicmpy_1.cmp_status = 'E') OR (cicmpy_1.cmp_status = 'B')
    AND (cicmpy_1.status_since < GETDATE() - 30)))

    Juntar  todos los valores que coincidan con 'E' y 'B' asociados a una cuenta de usuario, la única forma que se me ha ocurrido es realizar un cursor por cada uno de los select de forma que se vaya almacenando y poder luego revisar la lista.

    Muchisimas gracias de antemano, espero que me podáis dar alguna idea al respecto.

    lunes, 17 de abril de 2017 12:03

Todas las respuestas

  • Me parece tendras que expandir un poquito mas sobre lo que deseas hacer. De ser posible adjuntar esquema de tablas (solo columnas de interes), data de ejemplo en forma de INSERT y resultados esperados.

    Juntar cuales valores (de que columna / tabla / etc.)?


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 17 de abril de 2017 13:36
  • Gracias por responder, pues el esquema no lo puedo adjuntar pero si que puedo tratar de explicarlo mejor.

    Las tablas cicmpy y cicntp son las tablas donde se guardan los datos del cliente y de la persona, por lo que se debe buscar en ambas para ver si está repetido y si coincide con E o B mostrarlos en un listado en el que se vean  cicmpy.cmp_code de las cuentas en las que coincidan el telefono, movil o email.

    Esta select muestra que cliente está repetido, pero no dice con cual está repetido (cicmpy.cmp_code) y eso es lo que necesito conseguir.

    miércoles, 19 de abril de 2017 9:40