Access daten vergleichen
Morgen.
Ich stell mich gerade zu blöd an:
Ist zustand:
Täglich ändernde daten (rangliste, spieler kommen hinzu spieler gehen, punkte verändern sich)
daten kommen in TXT datei trennung per tab
Primekey ist der nick
import in acces geht ohne probleme.
sollzustand:
1.Ausgabe nickname, Punkte alt, punkte neu, und bestenfalls gleich die differenz
2. ausgabe nickname von spielern die sich nicht verändert haben
OK, die Abfrage das ich die differenz und die punkte von z.b. gestern und heute sehe klappt, zeigt mir aber nur an von den leuten die gestern und heute in der rangliste sind, soll aber auch anzeigen welche heute dazu gekommen sind.
Ich stell mich gerade zu blöd an:
Ist zustand:
Täglich ändernde daten (rangliste, spieler kommen hinzu spieler gehen, punkte verändern sich)
daten kommen in TXT datei trennung per tab
Primekey ist der nick
import in acces geht ohne probleme.
sollzustand:
1.Ausgabe nickname, Punkte alt, punkte neu, und bestenfalls gleich die differenz
2. ausgabe nickname von spielern die sich nicht verändert haben
OK, die Abfrage das ich die differenz und die punkte von z.b. gestern und heute sehe klappt, zeigt mir aber nur an von den leuten die gestern und heute in der rangliste sind, soll aber auch anzeigen welche heute dazu gekommen sind.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101921
Url: https://administrator.de/contentid/101921
Ausgedruckt am: 24.11.2024 um 03:11 Uhr
8 Kommentare
Neuester Kommentar
Moin education,
magst Du denn vielleicht Struktur der zwei (oder drei?) Tabellen posten?
Oder den Aufbau der TXT-Datei, deren Import ja klappt?
Und wie hast Du das "Datum", das ja in jedem Datensatz "logisch" vorhanden sein sollte physisch abgebildet?
Und wie geheim ist das Statement, das immerhin schon teilweise richtig ist? Lässt sich das auch hier veröffentlichen?
Sorry für die vielen Rückfragen statt einer erhofften Antwort, aber ich sehe anders keinen Ansatzpunkt.
Grüße
Biber
magst Du denn vielleicht Struktur der zwei (oder drei?) Tabellen posten?
Oder den Aufbau der TXT-Datei, deren Import ja klappt?
Und wie hast Du das "Datum", das ja in jedem Datensatz "logisch" vorhanden sein sollte physisch abgebildet?
Und wie geheim ist das Statement, das immerhin schon teilweise richtig ist? Lässt sich das auch hier veröffentlichen?
Sorry für die vielen Rückfragen statt einer erhofften Antwort, aber ich sehe anders keinen Ansatzpunkt.
Grüße
Biber
Moin Moin
Wenn dich mal die differenzproblematik kurz beiseite lasse.
Versuch mal folgendes Statement (das must du natürlich auf deine Tabellen übersetzen):
Damit solten dir alle User angezeigt werden die gestern und Heute existieren und natürlich auch alle Heute neu hinzugekommenen.
Gruß L.
OK, die Abfrage das ich die differenz und die punkte von z.b. gestern und heute sehe klappt, zeigt mir aber nur an von den leuten die gestern und heute in der rangliste sind, soll aber auch anzeigen welche heute dazu gekommen sind.
Diese Abfrage wäre evtl. Hilfreich gewesen.Wenn dich mal die differenzproblematik kurz beiseite lasse.
Versuch mal folgendes Statement (das must du natürlich auf deine Tabellen übersetzen):
SELECT * FROM UserHeute Left Join UserGestern on UserGestern.Charaktername = UserHeute.Charaktername
Damit solten dir alle User angezeigt werden die gestern und Heute existieren und natürlich auch alle Heute neu hinzugekommenen.
Gruß L.
Moin Moin
Du hast im deinem Post geschrieben
Wenn du nun in Abfrage1 Nur diese selektierst die schon in der Tabelle Mitglieder enthalten sind, kannst du die "Neuen" nicht bekommem.
Und warum Importierst du die Charaktere, die in Mitglieder schon enthalten sind, nochmal?
Gruß L.
Du hast im deinem Post geschrieben
...soll aber auch anzeigen welche heute dazu gekommen sind.
Wenn du nun in Abfrage1 Nur diese selektierst die schon in der Tabelle Mitglieder enthalten sind, kannst du die "Neuen" nicht bekommem.
Und warum Importierst du die Charaktere, die in Mitglieder schon enthalten sind, nochmal?
Gruß L.
Moin education,
in meinem ersten Kommentar oben hatte ich schon gefragt, wie Du das logisch vorhandene Attibut "Datum" denn in Deinem Datenmodell abgebildet hast.
Danke für die wenn auch verspätete Antwort.
Dann sollten wir vielleicht dort aufsetzen, weil wir sonst dieses Konstrukt ja nie auf die Füße bekommen.
Also, angenommen in der Tabelle Mitglieder würden 2 Datumsfelder existieren namens "angelegt" und "letztes Update" (beide vom Typ "Datum/Uhrzeit"), dann könntest Du doch
Und dann kannst Du auch anhand des "angelegt"-Datums die "neuen" und "vorhandenen" Mitglieder unterscheiden.
Bei "vorhandenen Mitgliedern" musst Du dann naturlich nur das Feld "letztes Update", nicht aber das Feld "angelegt" updaten.
Grüße
Biber
in meinem ersten Kommentar oben hatte ich schon gefragt, wie Du das logisch vorhandene Attibut "Datum" denn in Deinem Datenmodell abgebildet hast.
Danke für die wenn auch verspätete Antwort.
Dann sollten wir vielleicht dort aufsetzen, weil wir sonst dieses Konstrukt ja nie auf die Füße bekommen.
Also, angenommen in der Tabelle Mitglieder würden 2 Datumsfelder existieren namens "angelegt" und "letztes Update" (beide vom Typ "Datum/Uhrzeit"), dann könntest Du doch
- erstmal alle bisher vorhandenen Mitglieder auf ein Erst-Anlagedatum setzen mit
UPDATE Mitglieder
SET angelegt = #2008/01/01#,
[letztes Update] = date();
- und wenn denn mal ein Update ansteht gemäß Deiner Mini-Abfrage oben
INSERT INTO Mitglieder ( Charaktername, Stadtkasse, angelegt, [letztes Update] )
SELECT [Abfrage1-U].Charaktername,
[Abfrage1-U].Stadtkasse 03.FROM [Abfrage1-U],
date(), date();
Und dann kannst Du auch anhand des "angelegt"-Datums die "neuen" und "vorhandenen" Mitglieder unterscheiden.
Bei "vorhandenen Mitgliedern" musst Du dann naturlich nur das Feld "letztes Update", nicht aber das Feld "angelegt" updaten.
Grüße
Biber
Moin education,
kleiner Nachtrag noch.
Da das Feld "angelegt" ja IMMER nur beim INSERT geändert wird, nie beim UPDATE, kannst Du ja auch den Defaultwert in der Tabelle auf "=date()" setzen. Dann brauchst Du das Feld nie selbst füllen und nie in der INSERT INTO Anweisung mit aufführen.
Also kein Aufwand... das ist immer gefüllt vorhanden....
Grüße
Biber
kleiner Nachtrag noch.
Da das Feld "angelegt" ja IMMER nur beim INSERT geändert wird, nie beim UPDATE, kannst Du ja auch den Defaultwert in der Tabelle auf "=date()" setzen. Dann brauchst Du das Feld nie selbst füllen und nie in der INSERT INTO Anweisung mit aufführen.
Also kein Aufwand... das ist immer gefüllt vorhanden....
Grüße
Biber