PDA

View Full Version : GROUP BY Problem



watchdogg
10-01-11, 15:27
Hallo Leute,

ich greife per ODBC auf die DB2 zu und habe folgende Abfrage erstellt:



$sql1="select concat('76', substr(Feld1,3,4)) AS SD from Bibliothek.Datei where Feld1='$ab' group by SD";
Wie kann ich das realisieren, dass es mit dem Group By funktioniert. Das Group By muss sich unbedingt auf den Substring beziehen und nicht auf den unformatierten Feldinhalt.

Gruß watchdogg...

Fuerchau
10-01-11, 15:32
Im Group by ist der komplette Ausdruck zu wiederholen da der Feldname an dieser Stelle noch nicht bekannt ist.

Bedenke aber, dass diese Abfrage einen Tablescan auslöst wenn du nicht über where-Klausel näher einschränkst!

B.Hauser
10-01-11, 15:51
Alternativ kann eine Common Table Expression verwendet werden:


$sql1="With X as (select concat('76', substr(Feld1,3,4)) AS SD
from Bibliothek.Datei
where Feld1='$ab')
Select * from x group by SD";

Sollte tatsächlich nur dieses eine Feld selectiert werden, also keine Summe u.ä. gebildet werden, dann auch mit Distinct gearbeitet werden.


$sql1="select Distinct concat('76', substr(Feld1,3,4)) AS SD
from Bibliothek.Datei
where Feld1='$ab';


Birgitta