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.
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?
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:
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.
Es correcto hacer esto?
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:
SELECT strTipoUsuario FROM tblTipoUsuario WHERE (intIdTipoUsuario = 1)
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
Microsoft SQL Server 2008, me olvidaba, estoy con Store Procedure
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
Simon, eso era lo que necesitaba. :-*
DECLARE @intCount int
SET @intCount= (SELECT COUNT(intIdTipoUsuario) FROM tblTipoUsuario)
PRINT @intCount
Resultado:
3
DECLARE @srtTipoUsuario AS VARCHAR(50)
SET @srtTipoUsuario = (SELECT strTipoUsuario FROM tblTipoUsuario WHERE (intIdTipoUsuario = 1))
PRINT @srtTipoUsuario
Resultado:
Administrador
Bueno siempre es buscarle la vuelta al asunto
Un besito para mi :D
Grax.
puedes meterlo tambien en la consulta
DECLARE @intCount int
SELECT @intCount = COUNT(intIdTipoUsuario) FROM tblTipoUsuario