2016-10-13 220 views
0

我將下一個樣本數據放入一個表(EQUCODES)中,列「CODE」具有等效值,表示爲「EQCODE」列。在「EQCODE」列這個值可以在「CODE」欄和等效值相同的值另一條記錄將有反之亦然值即具有相同等值的組行具有相同的值

ID || CODE || EQCODE 
-------------------------- 
1 || a || b 
2 || b || a 
3 || c || d 
4 || d || c 

其他表(CLIENTTYPE),我想以上的加盟桌子旁邊estructure,

CLIENTID || CODE 
-------------------------- 
1   || a 
2   || a  
3   || b 
4   || a 
6   || b 
7   || b 

我怎麼能集團以這樣的方式查詢返回單個記錄,因爲他們是等價一旦它們與EQUCODES表連接這些CLIENTTYPE記錄?

+2

如果這些都是兩個你想加入的輸入表請提供輸出數據。 – Esty

回答

0

要查找每個客戶的規範代碼,使用:

select ClientID, min(code) as Code 
from (
    select ClientID, EQUCODES.EQCode as Code 
    from CLIENTTYPE inner join EQUCODES on CLIENTTYPE.Code = EQUCODES.Code 
    Union 
    select ClientID, EQUCODES.Code 
    from CLIENTTYPE inner join EQUCODES on CLIENTTYPE.Code = EQUCODES.EQCode 
) U 
Group By ClientID 

如果再想通過code聚集,你可以換這個那個查詢:

select Code, count(ClientID) from 
(-- the query above 
) G 
Group by Code