ALTER PROCEDURA [dbo]. [sp_sales_in_period]
(@month_id int)
oznajmiać @t stołowy (id int tożsamość (1,1) początkowy klucz, MonthID int, EmployeeID int, Pracownik nvarchar (50), Sprzedaż unosić się, DateEntered datetime)
oznajmiać @employee_id int
oznajmiać cur kursor fast_forward read_only dla (wybrany EmployeeID od vSalesEmployeeList)
oznajmiać @max int
ustawiać @max = 13
ustawiać @month_id = @month_id-3
otwierać cur
przynosić następnie od cur w @employee_id
podczas gdy @@fetch_status = (0)
zaczynać
ustawiać @month_id = @month_id+1
podczas gdy @month_id <= @month_id + @max
zaczynać
wkładać @t
WYBIÓRKA
a.MonthID,
e.EmployeeID,
e.Employee,
ISNULL (a.Actual, (0)) JAKO Sprzedaż,
a.DateEntered
OD dbo.tblSales JAKO WEWNĘTRZNY ŁĄCZYĆ
dbo.vSalesEmployeeList JAKO e NA a.EmployeeID = e.EmployeeID
DOKĄD (a.MonthID = @month_id)
I (a.EmployeeID = @employee_id)
I (
a.DateEntered =
(WYBRANY MAX (DateEntered) JAKO Expr1 OD dbo.tblSales jako p DOKĄD (p.MonthID = @month_id) I (p.EmployeeID = @employee_id))
)
ROZKAZ A.MonthID, a.DateEntered
końcówka
przynosić następnie od cur w @employee_id
końcówka
zamknięty cur
dealokować cur
zaczynać wybrany MonthID, EmployeeID, Pracownik, Sprzedaż, DateEntered od @t rozkaz MonthID, Pracownik końcówka
|