不要在游标PL / SQL中显示重复的值

问题描述

您好,我现在要返回这些值

--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; 

我尝试使用distinctGROUP BY,但是它仍然不断返回重复的值。有什么想法吗?

解决方法

如果您使用SQL plus执行此查询,那么您是否获得多行,如果ID_AGENT获得多行,那么您可以尝试使用DISTINCT看看每个代理商是否获得一行或多束丝束。

SELECT ID_AGENT FROM CALLS WHERE CALL_ENTRY_ID = idCalls;