Sumar un total de registros que no tienen una columna cantidad
SELECT SUM(rn) as Total FROM ( SELECT a.proyecto, ROW_NUMBER() OVER(PARTITION BY a.idalumno,a.idproyecto,a.proyecto ORDER BY a.proyecto DESC)rn from proyectos as a INNER JOIN Alumnos as b on a.idAlumno=b.idalumno INNER JOIN Carreras as c on b.carrera=c.idCarrera where a.Ano='2014' )a WHERE rn = 1 ;
Numeras registros
SELECT rank() OVER (ORDER BY b.nombre,a.idproyecto,a.idproyecto) as idproyecto, a.idalumno, b.nombre,c.nombre as carrera, a.proyecto, a.organismo, a.periodo, a.ano as Año, a.Horas,d.estado as Estado_Proyecto FROM Proyectos as a INNER JOIN Alumnos as b on a.idalumno=b.idalumno INNER JOIN Carreras as c on b.carrera=c.idCarrera INNER JOIN EstadosProyectos as d on a.EstadoProyecto=d.id where a.Ano='2014' ORDER BY b.nombre;
//Alumnos que presentaron proyectos
SELECT SUM(rn) as Total FROM (SELECT ROW_NUMBER() OVER(PARTITION BY a.idAlumno ORDER BY a.idAlumno DESC) rn from proyectos as a INNER JOIN Alumnos as b on a.idAlumno=b.idalumno INNER JOIN Carreras as c on b.carrera=c.idCarrera where a.Ano='2014' )a WHERE rn = 1;
//Total de proyectos del año 2014
SELECT SUM(rn) as Total FROM ( SELECT a.proyecto, ROW_NUMBER() OVER(PARTITION BY a.idalumno,a.idproyecto,a.proyecto ORDER BY a.proyecto DESC)rn from proyectos as a INNER JOIN Alumnos as b on a.idAlumno=b.idalumno
INNER JOIN Carreras as c on b.carrera=c.idCarrera where a.Ano='2014' )a WHERE rn = 1 ;
jueves, 10 de julio de 2014
domingo, 29 de junio de 2014
sábado, 21 de junio de 2014
Stored Procedure que imprime un Rango de numeros obtenidos de una tabla
Se trata de un procedimiento almacenado que obtiene dos números de una tabla y que consta de
las columna numero1, numero2 e IdFila que es la clave primaria, misma que se envía como parámetro al procedimiento almacenado e imprime el rango que existe entre estos dos números.
--Creando procedimiento
CREATE PROCEDURE ObtenNumerosRango
@Fila int
AS
BEGIN
DECLARE @N1 int,@N2 int;
SET @N1 = (Select cast(Numero1 as int)Numero1 from tblNumeros where idFila=@Fila);
SET @N2 =(Select cast(Numero2 as int)Numero2 from tblNumeros where idFila=@Fila);
WHILE @N1<=@N2
BEGIN
PRINT'Numero :):'+convert(varchar(3),@N1);
Select @N1=@N1+1;
END;
END
--Llamando al procedimiento
Suscribirse a:
Entradas (Atom)