Skip to content

Umbenennung in SQL-Aufgaben wird nicht erkannt

Dies ist ein altbekanntes Problem, das auch das alte Subato bereits hatte. Ich erfasse es mal hier, auf die Gefahr hin dass es ein Duplikat ist.

Beispiel ist diese Übung aus dem aktuellen Datenbanken-Kurs (Praktikum 7, "4. Drachen Gruppierung"): https://subato.cs.hs-rm.de/exercises/450/tasks/369

Es geht um Teilaufgabe "auf4". Eigentlich hat sie diese Lösung:

select Drachen.name as `nameDrachen`, Farm.name as `nameFarm` from
  (select did, fid From Aufenthalt group by did, fid having count(*) > 2) Mehr
  join Drachen on Mehr.did = Drachen.did
  join Farm on Mehr.fid = Farm.fid

Subato erkennt nicht die Umbenennung und wertet die Spalte als "name" aus (und eliminiert die zweite Spalte "name" als Duplikat). Deshalb schlägt der Test fehl, weil das erwartete Ergebnis nicht kommt.

Wir müssen deshalb ein sinnloses SELECT um das Ergebnis setzen:

select nameDrachen, nameFarm from
(
select Drachen.name as `nameDrachen`, Farm.name as `nameFarm` from
  (select did, fid From Aufenthalt group by did, fid having count(*) > 2) Mehr
  join Drachen on Mehr.did = Drachen.did
  join Farm on Mehr.fid = Farm.fid
) xxx;

Falls Subato Java-basiert ist: kann es das gleiche Problem wie https://stackoverflow.com/questions/12709814/column-aliasing-in-select-statements-doesnt-work-with-squirrel-sql-firebird sein?