du postest deine Aufgabenstellung, durchaus hilfreich,
aber kommt dir nicht in Sinn, dass ca. 27fach wichtiger wäre zu wissen, welches Schema/ Tabellen du tatsächlich implementiert hast?
welche Tabellen mit welchen Attributen welcher Datentypen?
- ‚Production‘ ist anscheinend eine Tabelle, gibt es darin ein Attribut LINK ja oder nein, wenn ja mit welchen Details usw.,
die Fehlermeldung sagt nein und damit auch dass du das angeblich abfragst, aber ich sehe im Moment selber auch nicht, woher die Vermutung kommt (*)
- mit LINK hast du noch eine zweite Tabelle
from LINK L2
?
mindestens dort dann auch ein Attribut LINK?..
das solltest du dir allgemein abgewöhnen, keine Attribute die wie Tabellen heißen,
production in der Tabelle Production genauso fragwürdig, was ist das dort eigentlich, welche Werte enthält das?
wieso kannst du das zählen zu welchem Zweck?
ob die Vorgabe ein solches Attribut erzwingt oder nicht kann ich nicht sicher interpretieren
(*) deine gepostete Query ist in jedem Fall unglücklich,
an erster Stelle schon reich technisch mit den Leerzeichen zwischen JEDER Zeile,
ich weiß nicht wie auch immer das bei manchen Usern kommt, du bist nicht alleine,
aber überlege, zumindest in Zukunft alles Denkbare zu versuchen, dies zu verhindern oder im Nachhinein zu korrigieren,
wenn du dir einmal bewußt bist, dass du in diese Kategorie Mensch/ technische Umgebung gefallen bist
das ist schlimm für alle Leser
ich habe versucht, die Query etwas aufzuräumen
[sql]select succ.production / alle.production * 100 --eigentliche Rechnung
from
(Select count(p.production) FROM Production p where year =‚2013‘) alle, --Alle Filme 2013
(SELECT count(p.production) FROM Production p
where exists(
select * from (
select L1.production1 from LINK L1
where exists (
select * from (
select L2.production1 from LINK L2 )L2
WHERE L1.PRODUCTION2 = L2.PRODUCTION1
) AND lower(L1.LINK) = ‚follows‘
) L1
WHERE p.PRODUCTION = L1.PRODUCTION1 --Nachfolger 2013
) AND lower(p.year) like ‚%2013%‘) succ
[/sql]
aber das scheint wohl hoffnungslos,
versuche in jedem Fall zunächst simple Queries, funktioniert
[sql]select * from Production
[/sql]
?
vielleicht dir schon bekannt, alles wichtige Informationen,
baue deine Queries Schritt für Schritt komplizierter, was geht alles noch, an welchem Punkt genau kommt der Fehler dazu?
wobei deine Query letztlich vielleicht vermeidbar ist,
denke für die Nachfolger-Subquery an normale Joins
[sql]select count(*) from p1, p2, link l where l.p1 = p1, l.p2 = p2 and p1 in 2013
[/sql]
oder so,
teste in jedem Fall derartige Subquery zunächst für sich, liefern sie genau die Zahl, die du auch erwartest?
danach dann die große Summe
wieso eigentlich an einer Stelle lower(p.year) like '%2013%'
, an einer anderen nur year ='2013'
?
und ist Zahltyp hier verboten?