AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datum aus voriger Zeile zum berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

Datum aus voriger Zeile zum berechnen

Ein Thema von concept2015 · begonnen am 17. Aug 2019 · letzter Beitrag vom 26. Aug 2019
Antwort Antwort
Seite 7 von 7   « Erste     567   
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#61

AW: Datum aus voriger Zeile zum berechnen

  Alt 26. Aug 2019, 08:18
Idee: In den Subselect muss auch die Einschränkung auf Jahr und Monat rein!

Die 20 in der ersten Zeile sind somit die Tage seit dem letzten Besuch im Vormonat und da z.B. Schokohase vermutlich in seinen Testdaten keinen Vormonat hat, kommt er da auf 0? Evtl. liefert der Subselect nach der Einschränkung Null statt 0, dann muss da ggf. noch sowas wie ein "Wenn Null dann 0" drum, in Oracle wäre das NVL, keine Ahnung wie bei FB der Befehl heißt.
Ralph
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#62

AW: Datum aus voriger Zeile zum berechnen

  Alt 26. Aug 2019, 08:22
Also klar, andere Daten ergeben natürlich andere Ergebnisse. Dafür ist ja ein Testfall da, wie Schokohase ihn gemacht hat.
Gruß, Jo
  Mit Zitat antworten Zitat
concept2015

Registriert seit: 22. Dez 2015
Ort: Nähe Dortmund
44 Beiträge
 
Delphi 7 Professional
 
#63

AW: Datum aus voriger Zeile zum berechnen

  Alt 26. Aug 2019, 14:16
Der Tip von Ralph war goldrichtig.
Idee:
In den Subselect muss auch die Einschränkung auf Jahr und Monat rein!

Code:
SELECT
  Qechtdat,wer,nummer,
  JulianDay(Qechtdat) - COALESCE(
    (SELECT JulianDay(Qechtdat) As Tage
      FROM Zwischen t2
      WHERE t2.nummer = t1.nummer
      AND JulianDay (t2.Qechtdat) < JulianDay(t1.Qechtdat)
      AND t2.Jahr = "2019" -- <---- !
      AND nummer = "139"  -- <---- !
      ORDER BY
      JulianDay(t2.Qechtdat) DESC
      LIMIT 1),JulianDay(Qechtdat)) AS Tage
   FROM Zwischen t1
   WHERE Jahr = "2019"
   AND nummer = "139"
bringt:

QEchtDat WER Nummer Tage
2019-01-10 Demag 139 0
2019-01-19 Demag 139 9
2019-01-25 Demag 139 6
2019-02-01 Demag 139 7
2019-02-08 Demag 139 7
2019-02-13 Demag 139 5
2019-02-27 Demag 139 14

Mit COALESCE( .... ohne ,0)

DANKE Ralph
Und auch DANKE an alle anderen, die sich über mein Problem den Kopf zerbrochen haben.

Geändert von concept2015 (26. Aug 2019 um 14:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#64

AW: Datum aus voriger Zeile zum berechnen

  Alt 26. Aug 2019, 21:16
Die ganze Abfrage mit Subselect und Ergebnis steht in #38
Subselect klappt.
Pardon, das konnte ich mir nicht verkneifen.
oder https://de.wikipedia.org/wiki/Vertra...lle_ist_besser!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 7   « Erste     567   


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 06:54 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