1

ID、名前、および DEPT の 3 つの列でリンクされた行を折りたたむために、Sybase で SQL ステートメントを作成するのに助けが必要です。私は1つのテーブルを持っていますTABLE1:

ID    NAME     DEPT     CAT
1     ghi                P
1               CV       G
2     abc                P
2               IT       G
2               HC       G
3     def                P
3     jkl                P
3               ENT      G
3               MC       G

CAT 列はカテゴリを意味します。P列は人を意味します。G列はグループを意味します。

ID個人 (NAME) とグループ (DEPT) を指定できます。

ID(1) が個人 (NAME) とグループ (DEPT) に関連付けられている場合、個人 (NAME) 行を更新して DEPT 名も付けてから、グループ (DEPT) 行を削除します。ID(2) が 1 人の人物 (名前) と複数の DEPT (グループ) に関連付けられている場合、その名前に対して 2 つの行が必要です。ID(3) に 2 つの異なる NAME と 2 つの異なる DEPT が含まれている場合、以下に示すように、NAME と DEPT ごとに別々の行が必要です。

以下は、私が望む予想される出力です。

    ID    NAME     DEPT     CAT
    1     ghi       CV       P
    2     abc       IT       P
    2     abc       HC       P
    3     def       ENT      P
    3     def       MC       P
    3     jkl       ENT      P
    3     jkl       MC       P

から上記の行を返す SQL ステートメントが必要TABLE1です。出来ますか?

4

1 に答える 1

2

これはあなたのために働くかもしれません。

SELECT t1.ID, t1.NAME, t2.DEPT, t1.CAT 
FROM TABLE1 AS t1
     INNER JOIN TABLE1 AS t2 ON (t1.ID = t2.ID)
WHERE t2.DEPT IS NOT NULL AND t1.NAME IS NOT NULL
于 2013-02-21T12:10:32.310 に答える