Witam.
Mam takie zadanie:
Napisz procedurę składowaną, która zwróci osoby starsze od wieku zadanego parametrem procedury.
Oto kod, który wykombinowałem:
ALTER PROCEDURE starsze_niz(@wiek int)
AS BEGIN
DECLARE @wiek_emp int, @hir datetime
DECLARE kursor CURSOR FOR select HIREDATE FROM EMP
OPEN kursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM kursor into @hir
SET @wiek_emp = (SELECT YEAR(GETDATE()) - YEAR(@hir) FROM EMP where HIREDATE = @hir)
IF @hir > @wiek_emp
BEGIN
print @hir
END
END
CLOSE kursor
DEALLOCATE kursor
END
Rezultat tego kodu oraz fragment tabeli EMP macie w załącznikach.
Problem polega na tym, że nie za bardzo kumam jak skonstruować ten konstruktor, aby wyświetlić Empno, Ename oraz hiredate. Drugie pytanie czy ta procedura jest dobrze zrobiona.