Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Shell Root en 27 Febrero 2010, 06:29 am



Título: Recuperar valor de consulta SQL
Publicado por: Shell Root en 27 Febrero 2010, 06:29 am
Bueno, en vista de que retome mi profesion de Desarrollador de Software, cosa que no retomaba desde hace más de 4 ó 5 meses, se me olvido realizar esto en SQL.

Supongamos que tenemos esta consulta.
Código
  1. SELECT COUNT(intIDUsuario) FROM dbo.tblReservas WHERE (intIDUsuario = '1') AND (Estado = 'Activo')

Ahora quiero que en una variable dentro del SQL, recuperar el valor que dá el resultado de la consulta anterior. Tengo que usar Cursores?


Título: Re: Recuperar valor de consulta SQL
Publicado por: ^Tifa^ en 27 Febrero 2010, 15:47 pm
No del todo, porque fijate que estas utilizando COUNT que retorna 1 solo valor entero acorde a la cantidad de registros que encuentres  ;)  esto cabe perfectamente en 1 sola variable dentro del motor solo declara la variable previamente y haz tu consulta:

Código
  1. SELECT COUNT(intIDUsuario) INTO @variable FROM dbo.tblReservas WHERE (intIDUsuario = '1') AND (Estado = 'Activo'
  2.  

Luego ya sabes haces un SELECT @variable para ver la info retornada.

Los cursores lo usaras cuando requieras obtener como respuesta mas de 1 registro, digase que quisieras obtener todos los nombres de los usuarios que ingresaron a un colegio en el año 2008 por ejemplo, aca sabes que si dices SELECT NOMBRES el te retornara mas de 1 valor, distribuido en distintos campos, entonces ahi si necesitas cursores. Pero en tu caso al utilizar la funcion COUNT estas sumando todos los registros encontrados, para al final retorna 1 solo valor que es la suma de lo encontrado  ;)

Saludo.


Título: Re: Recuperar valor de consulta SQL
Publicado por: Shell Root en 27 Febrero 2010, 18:32 pm
Es correcto hacer esto?
Código
  1. DECLARE @variable AS INT
  2. SELECT COUNT(intIdTipoUsuario) INTO @variable FROM tblTipoUsuario
  3. PRINT @variable
Porque me dá error en la segunda linea (Sintaxis incorrecta cerca de '@variable')



Ok. Y si el campo no fuese un INT sino un String (Varchar). Por ejemplo:
Código
  1. SELECT strTipoUsuario FROM tblTipoUsuario WHERE (intIdTipoUsuario = 1)


Título: Re: Recuperar valor de consulta SQL
Publicado por: ^Tifa^ en 27 Febrero 2010, 20:00 pm
Que motor es???? porque eso de declare variable as tal cosa suena a Oracle....

En MySQL es mas sencillo, ni tienes que declarar previamente la variable, bastaria con:

SELECT COUNT(campo) INTO @variable1 FROM TABLA WHERE CAMPO = ALGO

luego

SELECT @variable1


Título: Re: Recuperar valor de consulta SQL
Publicado por: Shell Root en 27 Febrero 2010, 20:18 pm
Microsoft SQL Server 2008, me olvidaba, estoy con Store Procedure


Título: Re: Recuperar valor de consulta SQL
Publicado por: ^Tifa^ en 27 Febrero 2010, 20:54 pm
No utilizo SQL Server. Pero buscando por ahi en internet una instruccion similar:

http://www.eggheadcafe.com/software/aspnet/30322497/store-count-into-a-variab.aspx

Haber si te sirve  :P


Título: Re: Recuperar valor de consulta SQL
Publicado por: Shell Root en 27 Febrero 2010, 20:58 pm
Simon, eso era lo que necesitaba.  :-*

Código
  1. DECLARE @intCount INT
  2. SET @intCount= (SELECT COUNT(intIdTipoUsuario) FROM tblTipoUsuario)
  3. PRINT @intCount
Resultado:
Código:
3

Código
  1. DECLARE @srtTipoUsuario AS VARCHAR(50)
  2. SET @srtTipoUsuario = (SELECT strTipoUsuario FROM tblTipoUsuario WHERE (intIdTipoUsuario = 1))
  3. PRINT @srtTipoUsuario
Resultado:
Código:
Administrador


Título: Re: Recuperar valor de consulta SQL
Publicado por: ^Tifa^ en 27 Febrero 2010, 21:09 pm
Bueno siempre es buscarle la vuelta al asunto

Un besito para mi  :D

Grax.


Título: Re: Recuperar valor de consulta SQL
Publicado por: [ Alberto] en 22 Marzo 2010, 00:12 am
puedes meterlo tambien en la consulta

Código:
DECLARE @intCount int
SELECT @intCount = COUNT(intIdTipoUsuario) FROM tblTipoUsuario