В настоящее время я использую хранимую процедуру getShifts
, чтобы получить данные для 2 отдельных функций на внешнем интерфейсе. Моей хранимой процедуре требуется параметр Selected Date
, который при передаче даты возвращает записи на указанную дату c.
Я пытаюсь обойти параметр ShiftDate
для одной из своих функций и заставить ее действовать как все. Есть ли способ передать фиктивную дату в хранимую процедуру, чтобы получить все записи?
BEGIN
SELECT
n.ID, n.ID, m.SearchFullNameFL as ProfileName, n.SchedID,
s.LicenseID, f.ID as UnitID, f.UnitName,
n.Hours, s.ShiftDate, s.SchedShiftID, ss.Description as SchedShift,
ss.Hours as SchedShiftHours, t.ID as TransactionTypeId,
(SELECT COUNT(b.ID)
FROM Sched b
INNER JOIN Ref_SchedShift ss ON ss.ID = b.SchedShiftID AND ss.DSN > 0
WHERE b.ExpiredBy = 0 AND b.ShiftDate = @ShiftDate -->= @StartDate
AND b.EndDate <= @EndDate
AND b.FacUnitID IN (SELECT Id FROM FacUnit
WHERE FacilityID = @FacilityID)
AND b.ID = s.ID) AS ShiftsWorked,
n.OverTimeReasonTypeID, n.Comment, n.Ref_NoLunchID as NoLunchID,
nl.NoLunchType
FROM
NewClockIns n
INNER JOIN
Members m ON m.ID = n.ID
INNER JOIN
Sched s ON s.ID = n.SchedID AND s.ExpiredBy = 0
INNER JOIN
Ref_Method rm ON n.Ref_MethodID = rm.ID
INNER JOIN
Ref_ClockTransactionType t ON t.ID = n.Ref_ClockTransID
INNER JOIN
FacUnit f ON f.ID = n.FacUnitID
INNER JOIN
Ref_License l ON l.ID = s.LicenseID
INNER JOIN
Ref_SchedShift ss ON ss.Id = s.SchedShiftID
LEFT JOIN
Ref_NoLunch nl ON nl.ID = n.Ref_NoLunchID
WHERE
s.ShiftDate = @ShiftDate-->= @StartDate
AND s.EndDate <= @EndDate
AND s.ClockInsAgencyApprovedByID > 0
AND ((@IsApproved = 1 AND s.ClockInsFacilityApprovedByID > 0)
OR
(@IsApproved = 0 AND s.ClockInsFacilityApprovedByID = 0))
AND f.Id IN (SELECT ID FROM @UnitIDList)
AND n.ExpiredBy = 0
END