Warengruppe über where-Klausel einschränken

Felix7410

Neuer Benutzer
Beiträge
4
Hallo,

bisher habe ich die Warengruppen in der where-Klausel immer über

„WarenGr in (ˋXYZˋ, ˋABCˋ, ˋ0815ˋ)…“

eingegrenzt.

Das ist alles schön und gut und hat bisher auch gut funktioniert. Nun möchte ich aber eine sehr große Anzahl an Warengruppen auflisten. Geht das irgendwie schneller und eleganter?

Besten Dank vorab.
Felix7410
 
Werbung:
um Dir eine Möglichkeit zu zeigen:

Code:
postgres=# create table felix7410(warengruppe int);
CREATE TABLE
postgres=# insert into felix7410 select * from generate_series(1,100) s;
INSERT 0 100
postgres=# create table del(d int);
CREATE TABLE
postgres=# insert into del select * from generate_series(2,99) d;
INSERT 0 98
postgres=# delete from felix7410 where warengruppe in (select * from del);
DELETE 98
postgres=# select * from felix7410 ;
 warengruppe 
-------------
           1
         100
(2 rows)

postgres=#
 
Nun möchte ich aber eine sehr große Anzahl an Warengruppen auflisten.
Die Geschwindigkeit hängt nur geringfügig davon ab, ob du mit Join, IN oder OR arbeitest.
Fraglich ist viel eher der Ablaufplan und ob nutzbare Indizes vorhanden sind. Darauf müsstest du dich konzentrieren
Und was heißt denn eine große Anzahl?
Das Textvergleiche suboptimal sind ist dir klar? Du solltest also über den dazugehörigen Primärschlüssel vergleichen, sofern vorhanden.
 
Zuletzt bearbeitet:
Edit:

Hatte die Aufgabe falsch verstanden: ich soll pro Warengruppe ein Preisdatum haben. Gibt es hier eine Vereinfachung bei vielen Warengruppen? Die Warengruppen stehen in die einer Liste. Die Frage, wie ich die Liste an die DB übergeben will, verstehe ich leider nicht. Ich möchte mit der Abfrage eine EXCEL-Tabelle erzeugen
 
Werte in die DB bekommen, das geht per Insert.
Wenn es zig Tausend Werte sind, könnte man mit CSV Import arbeiten.

Oder wenn es per Web Form bedient wird auch ein Upload (CSV, JSON, ..)
Von da aus könnte man es in eine User oder Session spezifische Tabelle laden und dann den Join mit den Stammdaten.
 
Werbung:
Zurück
Oben