2014-01-13 3 views
0

Ниже запрос используется для «Списка пользователей заказанных последним входом в системе и включает в себя идентификатор пользователя, адрес электронной почты и, по меньшей мере, одну группу, что они принадлежат к» в JIRA .....SQL синтаксис запросов на JIRA

SELECT cu.user_name 
, dateadd(second,cast(cast(cua.attribute_value as nvarchar(255)) as bigint)/1000,'19700101 00:00:00:000') 'last Login' 
, cu.lower_display_name 
, cu.email_address 
, (SELECT MAX(parent_name) FROM [jira].[dbo].[cwd_membership] cm WHERE cm.child_name = cu.user_name AND cm.parent_name NOT IN ('jira-sysadmins','jira-administrators','jira-users','jira-developers')) 'Group' 

FROM cwd_user cu INNER JOIN cwd_user_attributes cua 
ON cu.id = cua.user_id 
AND cua.attribute_name = 'login.lastLoginMillis' 
AND cu.active = '1' 
order by 2 desc 

Пример Результат набор для последнего входа

last Login 
1/8/2014 6:43:07 PM 
1/8/2014 6:23:10 PM 
1/7/2014 9:11:56 PM 

Может кто-нибудь пожалуйста, измените этот запрос, добавив условие на «последнего входа в систему», так что она возвращает только результаты, за последние 90 дней (например, «последний вход в систему»> SYSDATE - 90)

ответ

0

Я не знаю, какую базу данных вы используете? SqlServer?
В этом случае вы можете использовать DATEDIFF() функцию, добавив пункт:
AND DATEDIFF(GETDATE(), dateadd(second,cast(cast(cua.attribute_value as nvarchar(255)) as bigint)/1000,'19700101 00:00:00:000') < 90

я не пробовал (не SQLServer имеющихся на моем компьютере), но я думаю, что вы очень близки

+0

Да, это Microsoft SQL Server 2008 R2. Я получаю это исключение при выполнении sql, включая предложение where: «Ошибка поиска - ошибка базы данных SQL Server: неправильный синтаксис около« <»« – Sunnx

+0

oops, исправлено «<90» место – cLyric

+0

Спасибо cLyric с некоторыми другими трюками ... Я смог это исправить – Sunnx

0

Поскольку у вас уже есть преобразование, можно использовать подзапрос:

SELECT * FROM 
(

    SELECT cu.user_name 
    , dateadd(second,cast(cast(cua.attribute_value as nvarchar(255)) as bigint)/1000,'19700101 00:00:00:000') AS [last Login] 
    , cu.lower_display_name 
    , cu.email_address 
    , (SELECT MAX(parent_name) FROM [jira].[dbo].[cwd_membership] cm WHERE cm.child_name = cu.user_name AND cm.parent_name NOT IN ('jira-sysadmins','jira-administrators','jira-users','jira-developers')) 'Group' 

    FROM cwd_user cu INNER JOIN cwd_user_attributes cua 
    ON cu.id = cua.user_id 
    AND cua.attribute_name = 'login.lastLoginMillis' 
    AND cu.active = '1' 
) 
WHERE [last Login] > DATEADD(day,-90,GETDATE()) 
order by [last login] desc 
Смежные вопросы