2016-09-05 33 views
-6

當我使用以下查詢時,它會返回重複的外部ID,因爲它會將不同的案例列爲不同的行。SQL - 與案例不同時

SELECT DISTINCT 

    OENT.OTHER_EXTERNAL_ID                          AS 'Agent Master Number'  
    ,CASE WHEN SE.Organization_Name IS NULL OR RTRIM(LTRIM(SE.ORGANIZATION_NAME)) = '' THEN '' ELSE SE.ORGANIZATION_NAME END  AS 'Agent' 

    GROUP BY 

    OENT.OTHER_EXTERNAL_ID                        
    ,CASE WHEN SE.Organization_Name IS NULL OR RTRIM(LTRIM(SE.ORGANIZATION_NAME)) = '' THEN '' ELSE SE.ORGANIZATION_NAME END 

我在哪裏可以正確使用不同的名稱,因此無論它滿足何種情況,它都會將行列出一行。

感謝

問題是,它的回頭率

AGENT_NUMBER AGENT 

MA12348677 DREHWING, DOUGLAS 

MA12348677 DREHWING, DOUGLAS A 

,我想這是一個行,因爲它們具有相同的AGENT_NUMBER

+1

請,如果你想算什麼不同添加正確的DBMS標籤 – Jens

+1

是不是你的朋友 – swe

+0

對不起計數是錯誤的詞。我的意思是列表。 – ChrisM

回答

0
select distinct 
OENT.OTHER_EXTERNAL_ID AS AGENT_NUMBER, 
CASE 
    WHEN SE.Organization_Name IS NULL OR RTRIM(LTRIM(SE.ORGANIZATION_NAME)) = '' THEN '' 
    ELSE upper(SE.ORGANIZATION_NAME) 
END AS AGENT 
FROM SomeTableName 
order by AGENT_NUMBER 

它仍然會在情況下返回副本如果代理號碼不同。如果你想找到重複的名字然後

select AGENT, count (AGENT_NUMBER) from (
    select OENT.OTHER_EXTERNAL_ID AS AGENT_NUMBER, 
    CASE 
     WHEN SE.Organization_Name IS NULL OR RTRIM(LTRIM(SE.ORGANIZATION_NAME)) = '' THEN '' 
     ELSE upper(SE.ORGANIZATION_NAME) 
    END AS AGENT 
    FROM SomeTableName 
    ) 
    group by AGENT 
    HAVING count (AGENT_NUMBER) >1 
    order by AGENT 

要找到相同的代理號重名:

select AGENT_NUMBER, count (AGENT) from (
    select OENT.OTHER_EXTERNAL_ID AS AGENT_NUMBER, 
    CASE 
     WHEN SE.Organization_Name IS NULL OR RTRIM(LTRIM(SE.ORGANIZATION_NAME)) = '' THEN '' 
     ELSE upper(SE.ORGANIZATION_NAME) 
    END AS AGENT 
    FROM SomeTableName 
    ) 
    group by AGENT_NUMBER 
    HAVING count (AGENT) >1 
    order by AGENT_NUMBER 
+0

A from子句不是可選 –

+0

已更新的查詢。如果您想查看每個座席的計數,您可以刪除'HAVING count(AGENT)> 1'。 –

+0

它顯示FROM後第一個連接的錯誤。當使用連接我在哪裏放托架? – ChrisM