hi
habe ein kleines problem.
wenn ich folgende abfrage ausführen will bekomme ich ich immer einen fehler?? bloss was ist da nun falsch dran…das sql-statement ist meiner meinung nach richtig. ich such mich hier langsam zu tode…bitte helft mir.
code:
my $dbh = DBI->connect(„DBI:CSV:csv_sep_char=\;;f_dir=…/db/“) || die „Kann keine Verbindung zur CSV-DB aufbauen: $DBI::errstr\n“;
.
.
my $sth = $dbh->prepare( „SELECT COUNT(rechner), standort FROM rechner_db“ ) || die „Kann Statement nicht vorbereiten: $DBI::errstr\n“;
fehler:
Kann Abfrage nicht ausfuehren: dbih_getcom handle DBD::CSV::Statement=HASH(0x40546314) is not a DBI handle (has no magic) at /opt/perl/lib/site_perl/5.8.0/SQL/Statement.pm line 164.
Hi!
wenn ich folgende abfrage ausführen will bekomme ich ich immer
einen fehler?? bloss was ist da nun falsch dran…das
sql-statement ist meiner meinung nach richtig.
my $sth = $dbh->prepare( „SELECT COUNT(rechner), standort FROM rechner_db“ );
Deine SQL-Abfrage ist nicht korrekt, MySQL sagt z.B. dazu:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
with no GROUP columns is illegal if there is no
GROUP BY clause
Richtig wäre also:
SELECT COUNT(rechner), standort
FROM rechner\_db
GROUP BY standort
Dann erhältst Du die Anzahl Rechner für jeden einzelnen Standort.
Da 1 Standort mehrere Rechner haben kann, müssen die Zeilen mit gleichem Standort, aber unterschiedlichem Rechner erst
zusammengefasst werden. Dazu verwendest Du GROUP BY.
Gruß,
-Andreas.