Jump to content

Recommended Posts

Me he pasado mucho tiempo en esto pero aun no entiendo como puedo hacerlo:

Tengo un boton buscar, un numero de ficha y numero de ingreso; lo que necesesito saber es como hacer que al momento de buscar un rut, se muestre un numero de ficha nuevo (tomando el ultimo numero de ficha de la tabla aumentado en 1)... pero si existe ese rut, sólo que se deba aumentar el numero de ingreso para ese rut y no aumentar el numero de ficha (debe ser el mismo que se guardó anteriormente).

 

Espero que me puedan ayudar

 

Saludos y gracias de atemano ;)

 

Link to comment
Share on other sites

Bueno... crea un procedimiento almacenado en SQL con algo así:

DECLARE @RET BIT
SELECT @RET = 1 FROM tabla WHERE Rut = @Rut
IF @@ROWCOUNT > 0
BEGIN
   SELECT Rut, Ficha, MAX(Ingreso) + 1 FROM tabla WHERE Rut = @Rut
END
ELSE
BEGIN
   SELECT @Rut, MAX(Ficha) + 1, 1 FROM tabla
END

Bueno... básicamente, en la 1ª consulta, consultas si el rut existe... si existe, haces la selección correspondiente, pero si no existe, buscas el mayor de las fichas y me imagino que el Ingreso debería ser 1....

 

Espero te sirva...

 

Salu2.

Link to comment
Share on other sites

Muchas gracias por tu ayuda :)

 

mira lo hice así:

 

Declare @Rut Varchar(50)
declare @nofichaclinica Int
declare @numero_de_ingreso Int
DECLARE @RET BIT
SELECT @RET = 1 FROM Paciente WHERE rut = @Rut
IF @@ROWCOUNT > 0
BEGIN
   SELECT @rut, @nofichaclinica, MAX(@numero_de_ingreso) + 1 FROM Paciente WHERE @rut = @rut 
END
ELSE
BEGIN
   SELECT @rut, MAX(@nofichaclinica) + 1,1 FROM Paciente
END

 

y resulta que me muestra este resultado en sql server, si existiendo datos en la tabla

 

NULL    NULL    1

 

este procedure se ejecuta automaticamente cuando se ejecuta el programa?

y está bien haber declarado las variables que no existian o solo tengo que llamarlas por el nombre de los campos?

es necesario hacer algo más aparte de esto??

 

Saludos y espero tu ayuda. ;)

Edited by vasquex
Link to comment
Share on other sites

Lo que pasa estimado, es que el @Rut no lo debes declarar dentro del procedimiento almacenado... tienes que pasarlo como parámetro...

CREATE PROCEDURE blablablabla
    @Rut VARCHAR(12)
AS
BEGIN
    blablablabla
END

 

Este procedimiento almacenado, lo llamas cuando presionas el botoncito.... Mira aquí

 

Ah... y las consultas están malas... tienes que diferenciar entre el campo de la tabla y la variable... por ejemplo, tienes que hacer

Rut = @Rut

y no

@Rut = @Rut

porque si lo haces así, estás preguntando "algo" = "algo"

 

 

Salu2.

Edited by Ra
Link to comment
Share on other sites

  • 1 month later...

Muchas gracias por tu respuesta.

 

Mi lo hice y el resultado que me arroja es el siguiente:

 

2ci7la0.jpg

 

lo que no entiendo es porque me devuelve un valor 0 y que es eso de Return Value.

 

Me podrian ayudar?

 

Muchas Gracias y que Dios les Bendiga.

Edited by vasquex
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...