Hallo,
ich hab nun nicht ganz so die Ahnung, aber wenn die Abfrage häufiger benötigt wird muss ich mich meinen Vorrednern anschließen,
die anregten, dass Tabellen Design zu überdenken.
Mir ist nicht ganz klar, wird die Lösung in dem
DBMS über
SQL benötigt oder wäre Delphi einsetzbar?
Bei letzerem könnte man 2 Funktionen unter Einsatz einer
Query einsetzen, unter dem Ansatz, die nicht benötigten Datensätze vorab schon zu filtern:
1.) in der ersten Funktion werden deine Regeln festgelegt (Rückgabewert in meinem Beispiel = Integer)
2.)
Delphi-Quellcode:
function TForm1.Feldwert(index: integer): string;
//diese Funktion wendet die vorherige "Regel-Funktion auf deine Tabellenspalte "xyz" an
begin
if (UPPERCASE(Query1.Fields[index].fieldname) = 'XYZ')then
begin
Result := deine 1. Funktion(Query1.Fields[index].asinteger);//nur deine gültigen Datensätze
end;
end;
3.) evtl. Datenausgabe:
Delphi-Quellcode:
...
var
lsCell: string;
liFldCnt, liDS: Integer;
begin
liFldCnt := Query1.FieldCount;
if (liFldCnt > 0) then
while not (Query1.eof) do
begin
lsCell := Feldwert(0);
for liDS := 1 to liFldCnt - 1 do
begin
lsCell := lsCell + ';' + Feldwert(liDS); //beispielhafte Ausgabe
end;
end;
end;
Ich hoffe ich habe das jetzt auch richtig verstanden...