Notwendig, die Namen der Mitarbeiter entsprechend ihrer Ortsspalte zu ordnen

Ich habe eine Abfrage geschrieben, die die Daten aus verschiedenen Spalten nach Städtenamen extrahiert.

Meine Abfrage lautet wie folgt:

select q.first_name 
from (select employee_id as eid,first_name,city 
      from employees 
       group by city,first_name,employee_id 
       order by first_name)q
      , employees e 
where e.employee_id = q.eid;

Die Ausgabe der Abfrage besteht aus Mitarbeiternamen in einer einzelnen Spalte, die nach Städten gruppiert sind.

Nun möchte ich die obige Abfrage erweitern, um die Mitarbeiter anhand ihrer Städtenamen in verschiedene Spalten einzuteilen.

Ich habe versucht, Pivot zu verwenden, damit dies funktioniert. Hier ist meine Pivot-Abfrage:

select * from ( 
    select q.first_name 
    from (select employee_id as eid,first_name,city 
          from employees 
          group by city,first_name,employee_id  
          order by first_name)q
        , employees e 
       where e.employee_id = q.eid
 ) pivot 
    (for city in (select city from employees))

Ich bekomme ein Syntaxproblem mit fehlendem Ausdruck und bin nicht sicher, wie ich Pivot verwenden soll, um die unten erwartete Ausgabe zu erzielen.

Erwartete Ausgabe

DFW                     CH                  NY
----                    ---                 ---
TripeH                  John                Hitman
Batista                 Cena                Yokozuna
Rock                    James               Mysterio

Schätzen Sie, ob mich jemand in die richtige Richtung leiten kann.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage