Einzelnen Beitrag anzeigen

d6lpz

Registriert seit: 26. Mär 2008
73 Beiträge
 
Delphi 6 Professional
 
#19

Re: Datenauswertung mit SQL-Befehl?

  Alt 19. Apr 2008, 06:33
Hallo und danke für deine Geduld
Zitat:
Über den LEFT-Join wird ein vorhandener Folgetag, wenn vorhanden, mit dem aktuellen verknüpft. Es werden nur Zeilen mit einem Content W oder F berücksichtigt. Das bedeutet, ein Zyklus erhält verknüpfte Zeilen, nur die letzte Zeile in einem Zyklus findet keinen Folgetag mehr und somit sind alle Spalten in "b" gleich NULL diese Zeilen werden dann gezählt und genau dafür ist das b.nameID IS NULL dort kann auch jede andere Spalte von "b" benutzt werden.
Habe mich jetzt etwas weitergehend mit SQL befasst, allerdings kann ich mein Problem immer noch nicht selbst lösen

Ich habe meine Bsp DB noch einmal mit Daten überarbeitet/ergänzt und angehangen.
Es müßte folgendes herauskommen:
SQL_tab_V1 ->

User1 Jan=2 Feb=2
User2 Jan=3 Feb=1
User3 Jan=4 Feb=3

oder in der zweiten Variante

SQL_tab_V2 ->

User1 Jan=1 Feb=1
User2 Jan=2 Feb=2
User3 Jan=3 Feb=3
Wenn ich bei der Variante 2 für den User2 am 01./02.02.2008 ein "S" reinschreibe und damit den Zyklus nur zwei Tage eher anfangenlasse, wird dieser Zyklus auch korrekt gezählt. Warum kann ich mir nicht erklären. Möglicherweise weil diese zwei Tage bei der Sortierung nach Monaten die ersten Tage in der Liste (Monat) sind??

Vielleicht kann sich das noch einmal jemand ansehen bitte.

PS: Ich greife mit D6 auf diese Access2000 DB zu. Die SQL's habe ich aber bis jetzt nur in Access getestet.
Danke für eure Mühen.
Dirk

EDIT -> 08:25

Drei Sachen habe ich jetzt festgestellt (jetzt erst leider):

1. User1 hat zwei Einträge mit dem 10.01.2008 - bitte einen löschen
2. Als nirgendwo ein "S" eingetragen war, werden die "F" Zyklen gezählt (auch logisch bei "IN ('S','F')" )
Mein Fehler - habe ich wahrscheinlich nicht richtig erklärt.
Ziel war die "S" Zyklen zu zählen und wenn zwischen zwei "S" ein oder mehrere "F" auftauchen, sollen die "S" Zyklen zu einem Zyklus zusammengezählt werden. Die "F" Zyklen sind ansonsten nicht interessant.
3. Angenommen nirgendwo steht ein "S" drinnen und die Daten sind so eingegeben wie in der "tbl_daten_ORIGINAL".
dann erhalte ich für User1 und User2 für Jan 3 Zyklen und für Feb 1 Zyklus (nämlich die drei bzw einen "F" Zyklen).
Schreibe ich dann für User1 am 06.01.2008 ein "S" rein hat der User1 richtigerweise (zwar nicht wie ich es haben will aber laut SQL richtig) im Jan 4 Zyklen.
Schreibe ich dieses "S" für User1 nicht in den 06.01.2008 sondern in den 07.01.2008 rein, also unmittelbar vor einem "F", müßte der User1 im Jan 3 Zyklen haben (weil "S" und "F" stehen zusammen).
User1 hat zwar nur 3 Zyklen aber User2 hat einen weniger nämlich zwei.
Dafür habe ich überhaupt keine Erklärung

Ich hoffe irgendjemand fühlt sich herausgefordert und ist bei diesem Wirrwar noch in der Lage und Willens, etwas zur Lösung des Knotens beizutragen.

many thanks
Dirk

EDIT 08:50 -> Austausch der Bsp DB (mit Korrektur)
Angehängte Dateien
Dateityp: rar testv3_260.rar (12,3 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat