2012-04-10 8 views
0

Ich habe eine Abfrage mit einer Unterabfrage in einer anderen Unterabfrage. Daher erkennt die Unterabfrage auf der untersten Ebene ein Feld in der Unterabfrage auf oberster Ebene nicht. Wie könnte ich es umgehen?Mysql Unterabfrage erkennt kein Feld von der übergeordneten Abfrage

SELECT codigo, descricao 
FROM statusplano sp, previsao pr 
WHERE sp.codigo = pr.status 
AND pr.plano = 13 
AND sp.codigo = (SELECT codigo FROM statusplano sp1 WHERE ordem = (SELECT max(sp2.ordem) FROM statusplano sp2 WHERE sp2.codigo = pr.codigo AND pr.dataPrevista <= now())) 

Vielen Dank im Voraus.

+0

ich eine „ordem“ sehen, ohne Tabelle alias vor – kappa

+0

Ich habe versucht, diese Abfrage neu zu schreiben, mit nur einer Unterabfrage, aber ich habe den gleichen Fehler. 'SELECT codigo, descricao FROM statusplano sp, previsao pr WHERE sp.codigo = pr.status UND pr.plano = 13 UND sp.ordem = (SELECT max (sp2.ordem) FROM statusplana sp2 WHERE sp2.codigo = pr.codigo AND pr.dataPrevista <= now()) '. Der Fehler, den ich bekomme, ist "Unbekannte Spalte 'pr.codigo' in 'Where-Klausel'". –

+1

können Sie die Tabellenstruktur posten? – kappa

Antwort

0

Versuchen Sie, diese

SELECT 
codigo, 
descricao 
FROM sp2, 
previsao pr 
WHERE sp.codigo = pr.status 
AND pr.plano = 13 
AND sp.codigo = (SELECT 
        codigo 
       FROM sp2 
       WHERE ordem = (SELECT 
            max(sp2.ordem) 
           FROM statusplano sp2 
           WHERE sp2.codigo = pr.codigo 
            AND pr.dataPrevista <= now())) 
Verwandte Themen