2017-04-07 5 views
-2

Warum meine folgende Subroutine wirft eine jede abgeleitete Tabelle muss einen eigenen Alias-Fehler haben?Jede abgeleitete Tabelle muss ihren eigenen Alias ​​Fehler haben?

sub ok_wait 
{ 
my $str= shift; 
$DBH = &connect or die "Cannot connect to the sql server \n"; 
$DBH->do("USE $str;"); 
my $stmt="select name,jobs_ok,jobs_wait from (select name,jobs_ok,jobs_wait from files order by name limit 5) t union all select 'others',sum(jobs_wait)as jobs_wait,sum(jobs_ok)as jobs_ok from(select jobs_wait,jobs_ok from files order by name limit -1 offset 5) t;"; 
my $sth = $DBH->prepare($stmt); 
$sth->execute() or die $sth->errstr; 
my $tmp = 0; 
while(my @row_array=$sth->fetchrow_array) 
{ 
if ($tmp == 0) { 
$var_ok .= "\[\"$row_array[0] \($row_array[2]\)\",$row_array[2]\]"; 
$var_wait .= "\[\"$row_array[0] \($row_array[1]\)\",$row_array[1]\]"; 
$tmp++; 
} 
$sth->finish; 
$DBH->disconnect(); 
} 
+0

vielleicht, weil Sie abgeleitete Tabellen ohne Alias ​​haben? – billynoah

+0

Die obigen Änderungen zeigen Syntaxfehler @ billynoah – SRVVANI

+0

Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das zu Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe 'von entspricht (wählen Sie jobs_wait, jobs_ok aus Dateien nach Namen sortieren Grenze -1' @billynoah – SRVVANI

Antwort

0

der Grenzwert geändert

"select name,jobs_ok,jobs_wait from ((select name,jobs_ok,jobs_wait from files order by name limit 5) union all (select 'others',sum(jobs_wait)as jobs_wait,sum(jobs_ok) as jobs_ok from (select jobs_wait,jobs_ok from files order by name limit 0 offset 5) foo)) foo "; 

Hinweis: Nicht getestet ich es gerade hier direkt eingegeben, aber im Grunde müssen Sie einen Alias ​​Ihre Unterabfragen setzen.

+0

Es zeigt Syntaxfehler. – SRVVANI

+0

Sorry, ich werde es verlassen GurV, aber der Syntaxfehler könnte Mangel an Klammern sein – Learning

+0

Sie haben einen Fehler in Ihrer SQL-Syntax, überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe von entspricht (wählen Sie jobs_wait, jobs_ok aus Dateien um Name Limit -1 '@Learning – SRVVANI

Verwandte Themen