У меня есть таблица EmployeeAttendance и Users, и когда я пытаюсь получить записи с использованием приведенного ниже запроса и передавая значение null параметру @userName, он не возвращает никаких записей ... там может быть какая-то проблема в запросе ...Сохраненная процедура Не возвращает требуемый результат
может ли один помочь мне в этом
declare @month int =12,
@year int=1,
@orgID int=1,
@userName nvarchar(100) = null;
DECLARE @lastDay int;
-- calculations
DECLARE @startDate datetime, @endDate datetime
SET @startDate = convert(varchar, @year) + '-' + convert(varchar, @month) + '-1'
set @endDate = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@startDate)+1,0))
set @lastDay = day(@endDate) --last day of month
declare @day int
set @day = 2
declare @days varchar(max)
set @days = '[1]'
WHILE (@day <= @lastDay)
BEGIN
set @days = @days + ',[' + convert(varchar, @day) + ']'
set @day = @day + 1
END
declare @query varchar(max)
set @query = '
SELECT USerID,Name,' + @days +
'
FROM
(
SELECT u.ID as UserID, u.FirstName + '' ''' + ' ' + ' + u.LastName as Name, InTime,Outtime,isPresent, day(Date) as day FROM users u
LEFT join EmployeeAttendance e on e.USerID = u.ID AND [Date] between '''+ cast(@startDate as varchar)+' '' and '''+ cast(@endDate as varchar)+' ''
left join Employee emp on emp.UserID= u.ID
where emp.OrganisationID =' +cast(@orgID as varchar)+'
and(u.UserName like ''%'[email protected]+ '%'' OR '''[email protected]+''' IS NULL)
) AS SourceTable
PIVOT
(
MAX(InTime)
FOR day IN (' + @days + ')' + '
) AS PivotTable
;'
print @query;
exec(@query);
GO
И когда я передать @Username с некоторой конкретной строки, то она возвращает правильные результаты, но если я передать нуль значение для @userName, то оно возвращает ничего.
Так что, когда я передаю значение null @userName, он возвращает все результаты.
если вы useid равно нуль, то, что ваши принятые результаты? пожалуйста, что вы пытаетесь достичь и что вы сделали до сих пор? – Hiten004
, если мое имя пользователя равно null, тогда я хочу, чтобы все результаты и если есть какое-то значение в @ userName, то я уже получаю записи из вышеуказанного запроса. –
. Пожалуйста, обновите свой вопрос с принятыми результатами? – Hiten004