AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenauswertung mit SQL-Befehl?
Thema durchsuchen
Ansicht
Themen-Optionen

Datenauswertung mit SQL-Befehl?

Ein Thema von d6lpz · begonnen am 16. Apr 2008 · letzter Beitrag vom 19. Apr 2008
Antwort Antwort
Seite 3 von 3     123   
d6lpz

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

Re: Datenauswertung mit SQL-Befehl?

  Alt 19. Apr 2008, 12:16
Zitat von omata:
Irgendwie bin ich jetzt verwirrt.

Wo kommt jetzt das S her? Wo ist das W geblieben?

Kannst du mal bitte alle deine Situationen auflisten, die es geben kann? Deine Beschreibungen machen einen nur kirre. Es ist völlig egal was nicht geht, erkläre einfach was gehen soll. Anders geht man da nur unter.

Was passiert bei...

WFFFFF: ein Zyklus?
SFFFFF: ein Zyklus? -> User1 Jan=2 ok
FFFFFF: kein Zyklus? -> User1 Feb=2 wieso? dort ist doch gar kein S also eigentlich 0?

Was passiert bei einem Wechsel über eine Monatsgrenze?

Was ist mit den anderen Statuskonstanten?

Soll das alles in einer SQL-Anweisung ausgewertet werden?

Du machst es einem wirklich sehr schwer dir zu helfen.
Sorry für die Verwirrung!
Am Anfang dachte ich nicht das das so schwierig werden würde und hatte deshalb um das Prinzip zu erklären einfach Beispieldaten "erfunden".
Mittlerweile sind die Daten in der Bsp. DB den wirklichen insoweit nahe als das ich weitere Felder entfernt und die richtigen Namen gegen User1/2/3 ausgetauscht habe.

Als ich heute früh das zu erwartende Ergebnis definierte, habe ich natürlich danach weiter versucht das Problem selbst zu lösen (bis jetzt leider ohne Erfolg). Dabei habe ich in der Bsp.DB Abfragen geändert und mit verschiedenen Datensitutaion getestet.
Dieser Stand spiegelt sich in den Daten der Bsp.DB wider.

"S" bedeutet Sick
"W" bedeutet Work
"F" bedeutet Free

Es geht also darum, festzustellen, wieviel Zyklen jemand durchgängig Krank gewesen ist. Nur unterbrochen durch "F" also Freie Tage.
Also bspw. "S"/"S"/"F"/"F"/"S"/"S" wäre ein Zyklus und nicht zwei.

Sorry nochmal, aber ich hoffe das es jetzt klarer geworden ist.

Dirk
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: Datenauswertung mit SQL-Befehl?

  Alt 19. Apr 2008, 16:29
So ein neuer Versuch...

SQL-Code:
SELECT MONTH(a.f_date) AS monat, YEAR(a.f_date) AS jahr, a.f_name,
       SUM(IIf(b.f_content = 'S', 1, 0)) AS anzahl
FROM tbl_daten_v2 a
LEFT JOIN tbl_daten_v2 b
  ON ( a.f_date = b.f_date + 1
      AND a.f_name = b.f_name
      AND b.f_content IN ('S', 'F')
      AND a.f_content <> b.f_content)
GROUP BY YEAR(a.f_date), MONTH(a.f_date), a.f_name
ORDER BY YEAR(a.f_date), MONTH(a.f_date), a.f_name
Gruss
Thorsten
  Mit Zitat antworten Zitat
d6lpz

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

Re: Datenauswertung mit SQL-Befehl?

  Alt 19. Apr 2008, 20:50
Zitat von omata:
So ein neuer Versuch...

SQL-Code:
SELECT MONTH(a.f_date) AS monat, YEAR(a.f_date) AS jahr, a.f_name,
       SUM(IIf(b.f_content = 'S', 1, 0)) AS anzahl
FROM tbl_daten_v2 a
LEFT JOIN tbl_daten_v2 b
  ON ( a.f_date = b.f_date + 1
      AND a.f_name = b.f_name
      AND b.f_content IN ('S', 'F')
      AND a.f_content <> b.f_content)
GROUP BY YEAR(a.f_date), MONTH(a.f_date), a.f_name
ORDER BY YEAR(a.f_date), MONTH(a.f_date), a.f_name
Gruss
Thorsten
Ich bin happy das sich jemand noch mit meinem "Mist" beschäftigt und nicht aufgegeben hat!!
1. Bis jetzt habe den Effekt das sich bei einer Änderung des Users1 die Ergebnisse des User2 und User3 mit ändern noch nicht festgestellt.
2. Leider werden bei folgendem Eintrag zwei Zyklen gezählt und nicht einer:

nameID f_name f_date f_content
49 user2 13-Jan-08 W
52 user2 14-Jan-08 W
55 user2 15-Jan-08 S
58 user2 16-Jan-08 S
61 user2 17-Jan-08 F
64 user2 18-Jan-08 F
67 user2 19-Jan-08 S
70 user2 20-Jan-08 W

Ich höre aber heute auch erstmal auf - mir schwillt die Birne langsam.
Gruß und schönen Abend
Dirk
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: Datenauswertung mit SQL-Befehl?

  Alt 19. Apr 2008, 21:57
An dieser Stelle ist für reines SQL entgültig Schluss. Deine Wünsche sind zu kompliziert für SQL.
Wenn du ein ordentliches DBMS z.B. MSSQL benutzen würdest könntest du jetzt auf eine Stored Procedure zurückgreifen. Access ist dafür allerdings nicht mächtig genug.
Da bleibt dir wohl oder übel nur alles selber zu machen (über deine Schleifenvariante).

Sorry + Gruss
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz