Ich suche für folgendes Problem eine Lösung:
In einer Tabelle KUNDENZAEHLER, welche die Anzahl der Kunden pro Stunde enthalten soll. Aufbau etwa wie folgt:
CREATE TABLE KUNDENZAEHLER (
JAHR integer,
MONAT integer,
TAG integer,
STUNDE INTEGER,
KUNDEN_ANZAHL integer);
PRIMARY KEY ( JAHR,MONAT,TAG,STUNDE);
In dieser Tabelle soll der Inhalt des Feldes KUNDEN_ANZAHL eines evtl. vorhandenen Datensates um 1 erhöht werden, oder ein neuer Datensatz mit den entsprechenden Werten eingefügt werden. Und damit das ganze nicht zu einfach wird, soll dies auch noch mir Interbase- Bordmitteln passieren.
Die einzige Möglichkeit, die mir bisher eingefallen ist:
1. Mann führt grundsätzlich ein INSERT mit den aktuellen Daten durch.
2. Sucht dann mit einem BeforeInsert- Trigger den evtl. schon vorhandenen Datensatz.
3. aktualisiert die einzufügenden Daten (new....) mit den vorhandenen Daten (new.KundenAnzahl = new.KundenAnzahl+ :KundenAnzahlFound) 4. löscht den vorhandenen Datensatz
5. läßt mit dem INSERT den neuen Datensatz einfügen.
Das Ganze scheint mir ein wenig um die Ecke gedacht zu sein. Da Ich glaube, daß dieses Problem häufer auftritt, hat mit Sicherheit schon jemand eine bessere Lösung gefunden!?
Danke
Hans H. Fiddelke
In einer Tabelle KUNDENZAEHLER, welche die Anzahl der Kunden pro Stunde enthalten soll. Aufbau etwa wie folgt:
CREATE TABLE KUNDENZAEHLER (
JAHR integer,
MONAT integer,
TAG integer,
STUNDE INTEGER,
KUNDEN_ANZAHL integer);
PRIMARY KEY ( JAHR,MONAT,TAG,STUNDE);
In dieser Tabelle soll der Inhalt des Feldes KUNDEN_ANZAHL eines evtl. vorhandenen Datensates um 1 erhöht werden, oder ein neuer Datensatz mit den entsprechenden Werten eingefügt werden. Und damit das ganze nicht zu einfach wird, soll dies auch noch mir Interbase- Bordmitteln passieren.
Die einzige Möglichkeit, die mir bisher eingefallen ist:
1. Mann führt grundsätzlich ein INSERT mit den aktuellen Daten durch.
2. Sucht dann mit einem BeforeInsert- Trigger den evtl. schon vorhandenen Datensatz.
3. aktualisiert die einzufügenden Daten (new....) mit den vorhandenen Daten (new.KundenAnzahl = new.KundenAnzahl+ :KundenAnzahlFound) 4. löscht den vorhandenen Datensatz
5. läßt mit dem INSERT den neuen Datensatz einfügen.
Das Ganze scheint mir ein wenig um die Ecke gedacht zu sein. Da Ich glaube, daß dieses Problem häufer auftritt, hat mit Sicherheit schon jemand eine bessere Lösung gefunden!?
Danke
Hans H. Fiddelke
Comment