0

処理するかどうかわからないリクエストがあります。PIVOTを使おうと思っていたのですが、それでいいのかわかりませんでした。

次のデータがあります。

EmployeeA, DepartmentB, 1/10/2010
EmployeeA, DepartmentA, 1/1/2000
EmployeeB, DepartmentC, 1/3/2011

彼らは、異なる部門に所属していた従業員のみの出力を求めています。次のようになります (日付のため順序が重要です):

EmployeeA, DepartmentA, DepartmentB

どんな助けでも大歓迎です。どういうわけか、私の心は良い解決策を見つけていません。

4

2 に答える 2

4

これを行うJOINには、テーブルで self を実行してから、 a を使用しPIVOTて必要な形式でデータを取得します。

SELECT *
FROM 
(
    SELECT t1.emp, t1.dept, t1.dt
    FROM  test t1
    INNER JOIN test t2
        ON t1.emp = t2.emp
        AND t1.dept != t2.dept
) x
PIVOT
(
    min(dt)
    for dept in ([A], [B], [C], [D], [E])
) p

デモで SQL Fiddle を参照してください

を削除するJOINと、すべてのレコードが取得されますが、複数の部門にあるレコードのみが必要であると述べました。

于 2012-08-08T22:09:12.033 に答える