dada-lein
Goto Top

Beim Hinzufuegen von Datensaetzen werden Werte die schon vorhanden sind nicht hinzugefuegt.... :(((

Hallo. Ich habe hier ein Logfile-Script, dass eine Statistik erstellt. Jetzt musste ich feststellen, dass die Zählung der Gesamtbesucherzahl nicht ordentlich funktioniert. Ich habe jetzt im Script, dass das Logfile auseinander wuselt das folgende gefunden....

In der Tabelle [benutzer] wird unter "name" wird die UserIP (cIP) eingefügt. Ich möchte, daß bei jedem Durchgang alle "distinct" cIP's aus dem Logfile in die Tabelle [benutzer] eingefügt werden. Und derzeit scheint es so zu sein, daß die cIP's nur eingefügt werden, wenn die IP noch nicht in [benutzer] vorhanden ist.

Hier die SQL-Anweisung, die durchgeführt wird:

INSERT [benutzer](name) SELECT distinct ISNULL(csUsername, cIP) FROM LogAnalyse.tbl_log where ISNULL(csUsername, cIP) NOT IN (SELECT name FROM [benutzer])

Liegt das am "NOT IN (select name from [benutzer])" <-???

Hilfe Hilfe... der verdammte Fehler ist vorher nicht aufgefallen, nur jetzt, da wir auf eine Nullung der Gesamt-Besucherzahl zugehen und deswegen mind. täglich die Gesamtzahl beachten ist es aufgefallen. *hoil* So was doofes. face-sad

Natürlich ist der Mensch der das alles eingerichtet hat heute nicht erreichbar...wie sollte es anders sein. *seufz*

Hat irgendjemand einen Tip für mich? SQL ist nicht soooo mein Gebiet. Falls es wichtig ist... es ist ein MSSQL Server.

Vielen Dank schonmal.

bisdenndann
Björn

Content-ID: 28418

Url: https://administrator.de/forum/beim-hinzufuegen-von-datensaetzen-werden-werte-die-schon-vorhanden-sind-nicht-hinzugefuegt-28418.html

Ausgedruckt am: 23.12.2024 um 02:12 Uhr

Enclave
Enclave 17.03.2006 um 12:23:49 Uhr
Goto Top
Hi,

Vielleicht kann ich dir einen Befehl geben. Nur damit ich dich richtig verstanden hab. Du willst die gesamtbesucherzahl ausgeben lassen?


Enclave
dada-lein
dada-lein 17.03.2006 um 12:35:59 Uhr
Goto Top
Ja, Enclave ... die Gesamtbesucherzahl. Daher soll jede Nacht, wenn das Script durchläuft (keine Ahnung warum nur einmal pro Tag, aber mir solls egal sein *g*) aus dem Tageslogfile alle distinct ip-Adressen (also die cIP) der Tabelle [benutzer] hinzugefügt werden.

Nur wird halt scheinbar derzeit noch beachtet, ob die IPs schon in der Tabelle [benutzer] vorhanden sind. Und das ist ja nicht wirklich sinnvoll, von wegen 24h-Disconnect bei den meisten Nutzern bzw. eh nicht immer online-sein. face-smile

Ich hoffe ich habe mich einigermaßen klar ausgedrückt. Ich tipp mir immer ein wirres Zeug zusammen wenn ich was erklären/fragen will.
pi314
pi314 17.03.2006 um 12:50:33 Uhr
Goto Top
Wenn ich es richtig verstanden habe, willst du alle Benutzer in deinem LogFile in die Tabelle Benutzer einfügen,
egal, ob die da schon mal drinstehen.

Dann liegt es am NOT IN ... --> damit selektierst du ja nur diejenigen, die noch nicht in der Tabelle stehen

Und die Spalte, in dem du den Namen einträgst, darf natürlich kein PrimaryKey bzw. eine Spalte
mit unique-Constraint sein, sonst kannst du von vornherein keine doppelten Werte eintragen...

hoffe, dir hilftst face-smile

pi
Enclave
Enclave 17.03.2006 um 12:52:15 Uhr
Goto Top
Hmmmm.....

Error face-smile

Was ist den distinct ip-Adressen???

Dann kann ich schonmal weiter gucken ;)


Enclave
pi314
pi314 17.03.2006 um 13:04:08 Uhr
Goto Top
Das Schlüsselwort DISTINCT hinter der SELECT Anweisung sagt aus,
dass er in der Ergebnissmenge nur unterschiedliche Werte ausgibt.

d.h.:

Wenn deine Tabelle folgenden Inhalt hat:

ID Wert
1 10
2 20
3 10

und du macht SELECT DISTINCT WERT... dann bekommst du nur 10 und 20 zurück...
würdest du SELECT WERT machen würdest du 10, 20 und 10 zurückbekommen.
Enclave
Enclave 17.03.2006 um 19:41:14 Uhr
Goto Top
Achso ^^


Danke
dada-lein
dada-lein 20.03.2006 um 12:01:28 Uhr
Goto Top
Huiii...es hat funktioniert. Danke pi314.

Leider geht jetzt die Abfrage für die Besucheranzahl von "gestern" nicht mehr, aber da ist mir des gescripte zu kompliziert. Außerdem kann ich da nich unendlich Zeit reinstecken. Ich geb des jetzt an den ursprünglichen Programmierer zurück.

War sein Fehler. Soll er den auch beheben *hehe* *seufz*

Tz... da ändert man die eine Abfrage, so daß sie richtig geht und schon funktioniert die andere Abfrage nimmer... das is doch zum Mäuse melken face-sad