#oracle #plsql #plsqldeveloper
#Oracle #plsql #plsqldeveloper
Вопрос:
Привет, на данный момент я возвращаю эти значения
--Group: Junior -- Name: Jared Ramirez -- Id Agent: 1
--Group: Junior -- Name: Jared Ramirez -- Id Agent: 1
--Group: Junior -- Name: Lilah Bailey -- Id Agent: 26
--Group: Junior -- NoNamebre: Lilah Bailey -- Id Agent: 26
--Group: Junior -- Name: Lilah Bailey -- Id Agent: 26
Но я хочу вернуть только 1 для каждого номера агента, например
--Grupo: Junior -- Nombre: Jared Ramirez -- Id Agente: 1
--Grupo: Junior -- Nombre: Lilah Bailey -- Id Agente: 26
DECLARE
idCalls CALLS.CALL_ENTRY_ID%type;
idAgenteLlamada CALLS.ID_AGENT%type;
CURSOR c_Call (idCalls CALLS.CALL_ENTRY_ID%type) is
SELECT ID_AGENT
FROM CALLS
WHERE CALL_ENTRY_ID = idCalls;
BEGIN
OPEN c_Call (idCalls);
FETCH c_Call INTO idAgentCall;
WHILE c_Call %FOUND
LOOP
dbms_output.put_line('--Group: '||usergroup||' -- Name: '|| userName|| ' -- Id Agent: ' || idAgentCall);
FETCH c_Call INTO idAgentCall;
END LOOP;
CLOSE c_Call ;
END;
Я пробовал использовать distinct
и GROUP BY
, но он по-прежнему продолжает возвращать повторяющиеся значения. Есть идеи?
Ответ №1:
если вы выполняете этот запрос в SQL plus, тогда вы получаете несколько строк, и если вы получаете несколько строк для ID_AGENT, то можете ли вы попробовать использовать DISTINCT и посмотреть, получаете ли вы одну строку или несколько потоков для каждого агента.
SELECT ID_AGENT FROM CALLS WHERE CALL_ENTRY_ID = idCalls;
Комментарии:
1. Я использовал это
SELECT DISTINCT ID_AGENT FROM CALLS WHERE CALL_ENTRY_ID = idCalls;
, но даже в этом случае он продолжает возвращать повторяющийся ID_AGENT2. Привет, попробуйте это в SQL plus и посмотрите, что вы получаете, ВЫБЕРИТЕ DISTINCT TRUNC(ID_AGENT) ИЗ ВЫЗОВОВ, ГДЕ CALL_ENTRY_ID = idCalls;