Эта проблема сводит меня с ума.
У меня есть 2 таблицы:
Первая - user_account_log
id username invoiceid log_datetime log_type log_entry
1 testuser 0 2006-03-30 17:38:14.0000000 Suspend true
2 testuser 0 2006-03-30 17:38:30.0000000 Un-Suspend true
3 testuser 0 2006-03-31 15:19:42.0000000 Suspend true
4 testuser2 0 2006-03-31 17:14:15.0000000 Un-Suspend true
5 testuser2 0 2006-03-31 17:15:18.0000000 Suspend true
6 testuser3 0 2006-04-06 16:13:59.0000000 Suspend true
и
user_account:
username accountname datestart dateend
testuser product1 2000-08-30 23:59:59.0000000 2000-12-29 21:04:33.0000000
testuser2 product2 2000-08-28 14:10:03.0000000 2002-01-21 13:07:05.0000000
testuser3 product1 2000-08-28 16:17:06.0000000 2002-06-30 23:59:59.0000000
Как часть более крупного запроса - у меня есть оператор with со следующим кодом:
SELECT MAX(log_datetime) AS logtime,
max(id) AS ID,
user_account_log.username,
ua.accountname,
log_type,
ROW_NUMBER() OVER(PARTITION BY user_account_log.username order by log_datetime) as temp
FROM user_account_log
left outer join user_account ua on ua.username = user_account_log.username
where ua.dateend is null
GROUP BY user_account_log.username,
log_datetime,
ua.accountname,
log_type
Но он не выводит то, что мне нужно - текущий набор результатов выглядит следующим образом:
logtime ID username accountname log_type temp
2011-11-17 15:18:23.0000000 34736 testuser product1 Un-Suspend 61
2011-11-17 15:18:23.0000000 34736 testuser product2 Un-Suspend 62
2012-12-10 10:35:08.0000000 35607 testuser product1 Suspend 63
2012-12-10 10:35:08.0000000 35607 testuser product2 Suspend 64
2013-09-04 17:09:09.0000000 36587 testuser product1 Un-Suspend 65
2013-09-04 17:09:09.0000000 36587 testuser product2 Un-Suspend 66
что мне нужно сделать, это взять самый последний журнал (используя либо время журнала, либо ID), но мне нужно убедиться, что он сгруппирован по всем продуктам, поэтому ожидаемый результат будет ограничен таким образом:
logtime ID username accountname log_type temp
2013-09-04 17:09:09.0000000 36587 testuser product1 Un-Suspend 65
2013-09-04 17:09:09.0000000 36587 testuser product2 Un-Suspend 66
Я уверен, что есть что-то очевидное, что я упускаю в этом выборе - но я провел большую часть дня с различными результатами, которые не похожи на результатустановите, что мне нужно.
Я также удалил все конфиденциальные данные - поэтому не беспокойтесь, что вывод отличается от фрагмента таблицы, которую я включил выше.
Любая помощь будетс благодарностьюСпасибо