Einzelnen Beitrag anzeigen

rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
299 Beiträge
 
Delphi 10.4 Sydney
 
#1

Array mit DB Ergebnismenge vergleichen

  Alt 15. Mai 2018, 12:33
Hallo zusammen,

ich benötige mal einen Denkanstoß: Ich habe ein Array, dessen Inhalt in die WHERE - Clause eines SQL wandert. Danach möchte ich die Ergebnismenge mit dem Ausgangsarry vergleichen. Damit will ich feststellen, welche Werte des Array nicht im Ergebnis des SQL enthalten ist/sind.

Beispiel:

Delphi-Quellcode:
a[1] := 'Peter';
a[2] := 'Klaus';
a[3] := 'Paul';
a[4] := 'Theo';
a[5] := 'Bernd';
Daraus folgt die SQL Abfrage:

Code:
SELECT
   NAME
   ,COUNT(*) AS Anz
FROM
   Tabelle
WHERE
   NAME IN ('Peter', 'Klaus', 'Paul', 'Theo', 'Bernd')
GROUP BY
   NAME
ORDER BY
   Anz ASC
Die Ergebnismenge soll mal sein:

NAME, Anz
Klaus, 10
Bernd, 8
Peter, 5
Theo, 5


Klar ist jetzt: Ich suche 'Paul', weil er in der Ergebnismenge nicht vorhanden ist.

So, nun könnte ich Zeile 1 der DB nehmen und mit einer Schleife durch das Array laufen und fragen: Tabelle.Name = a[i] und entsprechend handeln.
So, nun könnte ich Zeile 2 der DB nehmen und mit einer Schleife durch das Array laufen und fragen: Tabelle.Name = a[i] und entsprechend handeln.
So, nun könnte ich Zeile 3 der DB nehmen und mit einer Schleife durch das Array laufen und fragen: Tabelle.Name = a[i] und entsprechend handeln.

Und hier frage ich mich, ob das auch eleganter zu lösen ist oder seht Ihr einen anderen Weg diesen Abgleich durchzuführen?

Danke für Tipps!

Beste Grüße
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat