Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (sql) [Seleccionar]
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 (sql) [Seleccionar]

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


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 (sql) [Seleccionar]
DECLARE @variable As INT
SELECT COUNT(intIdTipoUsuario) INTO @variable FROM tblTipoUsuario
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 (sql) [Seleccionar]
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 (sql) [Seleccionar]
DECLARE @intCount int
SET @intCount= (SELECT COUNT(intIdTipoUsuario) FROM tblTipoUsuario)
PRINT @intCount

Resultado:
3


Código (sql) [Seleccionar]
DECLARE @srtTipoUsuario AS VARCHAR(50)
SET @srtTipoUsuario = (SELECT strTipoUsuario FROM tblTipoUsuario WHERE (intIdTipoUsuario = 1))
PRINT @srtTipoUsuario

Resultado:
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

DECLARE @intCount int
SELECT @intCount = COUNT(intIdTipoUsuario) FROM tblTipoUsuario