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)