2017-03-08 57 views
1

全新的網站,這是我的第一個問題!對不起,我的SQL技能非常有限。我主要使用Tableau,但需要在Tableau中創建自定義SQL聯接。替換表中的值,然後將其添加到另一個表

我有2個表(C表和P表),需要通過「訂單」字段(在這兩個表中找到)和「前綴」字段(只在C表中找到,但希望更改值P表中的「合同」字段進行加入)。這只是需要改變的兩個值。如果合同=「1234」,它將改爲「ABC」,合同=「5678」將更改爲「XYZ」

一旦這些值改變,P表中的合同可以加入前綴由C表

對不起我不能解釋這更好,但就像我說我在SQL的經驗非常有限任何幫助,將不勝感激

回答

1

你可以用子查詢來做到這一點。

select * 
    from C 
    inner join (
     select *, 
       case contract when 1234 then ABC 
           when 5678 then XYZ 
           else contract 
       end as changed_contract -- or whatever name you like 
      from P 
    ) P on P.changed_contract = C.prefix 
     and P.orders = C.orders 

子查詢的表會給你所有與P包括一個新的領域是考慮到一個帳戶,您所做的修改字段。然後,您只需加入新的字段並更改您的選擇語句以獲取所需的字段。

+0

謝謝愛德華這工作完美! – Rosadocc

+0

不客氣:) – KindaTechy

0

你可以使用一個case修改contract某些值一樣。!:

select prefix + ' ' + case contract 
     when '1234' then 'ABC' 
     when '5678' then 'XYZ' 
     else contract 
     end as prefix_plus_contract 
,  * 
from c 
join p 
on  c.orders = p.orders 
相關問題