paul_vin Ответов: 1

Я хочу рассчитать нет месяца с даты присоединения от сотрудника


У меня есть временная таблица, которая содержит следующие данные
Id	UserId	UserFirstName	DOJ	Location
1	5	Ashvini	2016-05-03 00:00:00.000	Mumbai
2	18	Deepak	2016-06-13 00:00:00.000	Mumbai
3	23	Devesh	2016-05-02 00:00:00.000	Mumbai
4	25	Dibyajyoti Arabinda	2016-07-06 00:00:00.000	Mumbai
5	27	Gaurav	2016-08-16 00:00:00.000	Mumbai
6	38	Izhar	2016-05-23 00:00:00.000	Mumbai
7	39	Jacob	2016-04-21 00:00:00.000	Mumbai
8	47	Mamun Al	2016-08-04 00:00:00.000	Mumbai
9	49	Manoj	2016-08-22 00:00:00.000	Mumbai
10	54	Nagesh	2016-06-01 00:00:00.000	Mumbai
11	55	Namit	2016-07-04 00:00:00.000	Mumbai


Теперь я хочу рассчитать общее количество месяцев с даты присоединения до сегодняшней даты

Что я уже пробовал:

Declare @count int,@Count1 int, @DOJ datetime,@COuntdate int,@Id int

 set @count =(select count(UserID) from #MyTemp1)
 set @Count1=1
 while(@Count1<=@count)
 begin
 set @Id=(select Id from #MyTemp1 where Id=@Count1)
 set @DOJ = (select DOJ from #MyTemp1 where @Id=@Count1)

set @COuntdate= (select DATEDIFF(MONTH, (select DOJ from #MyTemp1 where Id=@Count1),GETDATE()) as Vintage)

 --set @COuntdate= (select DATEDIFF (month, @DOJ, getdate())) 
 --CASE
 --  WHEN DATEPART(day, @DOJ) > DATEPART(day, getdate()) THEN 1 ELSE 0
 --END
 print @COuntdate 
 END
 set  @Count1=@Count1+1


но это дает ошибку

F-ES Sitecore

Если вы не считаете, что сообщение об ошибке имеет отношение к решению проблемы, то, может быть, вам стоит взять другой класс?

1 Ответов

Рейтинг:
2

Maciej Los

Если я вас хорошо понимаю...

Это должно быть что-то вроде этого:

SELECT SUM(T.NoOfMonthsOfDOJ) AS TotalMonths
FROM (
    SELECT DATEDIFF(MONTH, DOJ, CONVERT(DATE, GETDATE())) AS NoOfMonthsOfDOJ --number of months for each employee
    FROM TmpTable
) AS T