Hallo community,
ich arbeite gerade an einer Datenbank für eine Schulaufgabe.
Ich will in einer stored Procedure den Versuch der Person mit der pid=20175 für die Pruefung mit der pruefungID=8 um einen erhöhen.
Soll natürlich für alle gehen. Aber erstmal würde mir einer reichen.
UPDATE dba.Anmeldung
SET versuch = versuch+1
WHERE pid = 20175
AND modulID = (SELECT modulID FROM Pruefung WHERE PruefungID=8);
Diese Updateanweisung funktioniert nicht mit der Fehlermeldung 'Spalte versuch nicht gefunden'
das Komische ist aber dieses Select-Statement auf der gleichen Datenbank funktioniert~~~sql
select versuch from anmeldung
WHERE pid = 20175
AND modulID = (SELECT modulID FROM Pruefung WHERE PruefungID=8);
Ich kann mir dieses Phänomen nicht erklären, einer von euch vielleicht?
Die Tabelle sieht so aus
~~~sql
/*==============================================================*/
/* Table: Anmeldung */
/*==============================================================*/
create table Anmeldung
(
modulID char(8) not null,
pid integer not null,
anmeldestatus smallint,
Versuch int,
constraint PK_ANMELDUNG primary key clustered (modulID, pid)
);
Ich arbeite mit einer Sybase SqlAnywhere11 Datenbank, und habe als dba und/oder dbuser das gleiche Resultat.
Wäre cool, wenn einer von euch ne Antwort weiß.
mfg Sam