2017-11-17 10 views
-1

私はこのテーブルを持っている:これは私が試したものであるSQL Serverの - 同じテーブルのマップ列

EMPID NAME MANAGER 
    1  a  0 
    2  b  a 
    3  c  a 
    4  d  b 
    5  e  c 

、それ:

enter image description here

私はこれを取得したいのですが

SELECT A.Empid, A.Name, REPLACE(A.Name,A.Empid,1) 
FROM ChethanQuery A 
INNER JOIN ChethanQuery B on A.Empid=B.Empid 
+0

と同じ「頭」マネージャーは何にも参加しませんので、必要とされているLEFT JOINは、あなたがそのデータセットになりますクエリを求めていますか?何を試しましたか?スクリーンショットにSSMSが明確に表示されていると、SQL ServerとPostgresの両方にタグが付けられるのはなぜですか?正直なところ、これは私の宿題のようです。私はSQLクラスでほぼ同じ質問を覚えています。 –

+0

No Sir。私が試してみました 。しかし、私は論理を得ませんでした。私は1つの列に結果を得る必要があります.ok私はタグを変更します –

+0

何を試しましたか?これまでの試みの例を挙げてください。 –

答えて

2

あなたのクエリは近いですが、あなたは他の名前とtを選択する必要があります弱いあなたの参加条件は:

SELECT T.EmpID, T.Name, COALESCE(T2.Name,'0') AS ManagerName 
FROM YourTable T 
LEFT JOIN YourTable T2 ON T.Manager = T2.EmpID 

COALESCE(T2.Name,'0')

+0

変換に ChethanQuery Bに参加VARCHAR値を変換する際に失敗しました'a'をデータ型intに変換します。 –

+0

@sampathacharyaもう一度やり直してください。合体で「0」の周りにダニを置くのを忘れました。 –

+0

@Aaron Sir –

関連する問題