Я следующее утверждение, которое отлично работает для подсчета количества подписанных заметок пользователя (GRIDTEXT) в базе данных заданных в пределах заданного диапазона дат:Oracle Сумма подзапроса в Select
SELECT
GRIDTEXT "User",
COUNT(GRIDTEXT) "SignedNotes"
FROM CAPTURED_ELEMENT CE
WHERE APPLICATION_ID = '8'
AND UPDATE_DT BETWEEN '01-JUL-2015' AND '05-JUL-2015'
AND MISC1 = 'SIGNED'
GROUP BY GRIDTEXT
Это работает и возвращает как так:
User SignedNotes
Jim 5
Laura 3
мне нужно добавить столбец, который подсчитывает количество тех нот, где они были последний пользователь подписать. Я пробовал код ниже и некоторые варианты, но продолжаю получать ошибки «отсутствия выражения».
SELECT
GRIDTEXT "User",
COUNT(GRIDTEXT) "SignedNotes",
SUM(SELECT COUNT(CX.GRIDTEXT)
FROM CAPTURED_ELEMENT CX
WHERE CX.EXAMID = CE.EXAMID
AND APPLICATION_ID = '8'
AND ROWNUM = 1
AND CX.GRIDTEXT = CE.GRIDTEXT
ORDER BY UPDATE_DT DESC) "FinalNotes"
FROM CAPTURED_ELEMENT CE
WHERE APPLICATION_ID = '8'
AND UPDATE_DT BETWEEN '01-JUL-2015' AND '05-JUL-2015'
AND MISC1 = 'SIGNED'
GROUP BY GRIDTEXT
Это ошибки, но должны вернуться:
User SignedNotes FinalNotes
Jim 5 2
Laura 3 1
Структура таблицы грязен, но в основном:
GRIDTEXT APPLICATION_ID UPDATE_DT MISC1 EXAMID
<Name of User> <Note Type (#)> <Date of Action> <ActionType> <Encounter>
Мне нужно знать, сколько нот каждый пользователь выполнил «ПОДПИСАЛИ «действие (работа) и количество заметок, которые они были последним пользователем для входа в систему (последний UPDATE_DT при группировке с помощью EXAMID, не работает)
Что мне здесь не хватает ...
Вы не можете встроить выбрать так, и ROWNUM логика не является правильным. Нужен встроенный просмотр или аналогичный. Можете ли вы показать примерную таблицу и ожидаемый результат? – OldProgrammer
избегать сюрпризов и использовать TO_DATE ('01 -JUL-2015 ',' DD-MON-YYYY ') – kevinsky
Что вам не хватает? Закрывающая скобка для вашей функции sum. Но, как упоминалось выше, это не ваша самая серьезная проблема, –