none
Procedimientos almacenados SQL SERVER RRS feed

  • Pregunta

  • Tengo varias tablas y estoy usando procedimientos almacenados, en una opcion quiero que me liste los eventos pero solo del usuario que ingresa al sistema. ¿Como puedo hacer eso usando INNER JOIN xq quiero que en lugar de la fk me muestre la descripcion correspondiente
    IF(@Opcion = 3)
    BEGIN
    SELECT pkEvento AS 'Clave', T2.DescripcionTipoEvento AS 'Tipo Evento', T1.Material AS 'Material',
    T1.Formato AS 'Formato',T1.FechaEvento AS 'Fecha',T3.DescripcionEstado AS 'Estado' FROM tblEventos AS T1
    INNER JOIN tblTipoEvento AS T2 ON T1.fkTipoEvento=T2.pkTipoEvento
    INNER JOIN tblEstado AS T3 ON T1.fkEstado=T3.pkEstado
    WHERE fkUsuario=@fkUsuario
    // Esta linea es mi duda ya que al ponerla ya no me manda datos y si la quito me manda todos los datos de la tabla
    END
    miércoles, 12 de diciembre de 2018 3:09

Respuestas

  • Hola Emilio Hernández:

    La línea 3 es correcta desde el punto de vista de que restringe los datos, que devuelvan los conjuntos formados por tus tablas.

    Para poder ayudarte un poco mejor, tendrás que poner, más datos, porque de la misma no se puede deducir nada.

    Pega el contenido del procedure, eliminando las partes que no son importantes para tu resolución. Pega el script de creación de las tablas para saber los tipos de datos, que contienen (al menos los campos que son necesarios para el ejemplo).

    Pega algún dato de ejemplo para poder indicarte por donde pueden ir los problemas.

    Al estilo de:

    Create procedure sp_ejemplo (@fkUsuario as int, @opcion as int)

    As

    if (@opcion=3)

    begin

    Codigo

    end

    return

    créate table tblTipoEvento (pkEvento int, Descripción varchar(100)…)

    Create Table tblEstado …..

    Y así sucesivamente.

    • Propuesto como respuesta Pedro Alfaro miércoles, 12 de diciembre de 2018 15:48
    • Marcado como respuesta Pablo RubioModerator miércoles, 16 de enero de 2019 19:53
    miércoles, 12 de diciembre de 2018 5:41