Announcement

Collapse
No announcement yet.

Zähler per SQL - ich schaff's nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zähler per SQL - ich schaff's nicht

    Hallo,

    ich versuche, folgendes schnell und möglichst elegant zu lösen:

    In einer Tabelle werden Kontoauszüge verwaltet. Beim Einlesen (oder danach) sollen die Auszüge nun nummeriert werden, und zwar so, dass jedes neue Datum auch eine neue Nummer bekommt, am 1.1. eines Jahres geht es wieder bei 1 los.

    Kann man das per SQL in einer Abfrage lösen? Bis jetzt sind mir nur ziemlich komplizierte (und langsame) Konstrukte eingefallen.

    Danke im Voraus...

    Felix

  • #2
    Hilft das ?:<BR>

    db.first;<BR>
    AuszugNr = 1; tmPDatum := db.Datum;<BR>

    while not db.eof do <BR>
    begin<BR>
    If tmpDatum < db.Datum do <BR>
    begin<BR>
    inc(AuszugsNr);<BR>
    If tmpdatum.Jahr <> dbDatum.Jahr then Auszugsnummer := 1;<BR>
    tmpDatum := db.Datum)<BR>
    end;<BR>
    db.AuszugsNr := auszugsnr;<BR>
    end;<BR>

    Gruss<BR>

    Stephan Weiser<BR&gt

    Comment


    • #3
      Hallo Stephan,

      danke für den Code.

      Ja, so geht es gut. Aber die Tabelle muss doch jedesmal durchlaufen werden. Das wollte ich eventuell mit einer Abfrage lösen, ist aber wahrscheinlich nicht möglich.

      Wie mache ich es denn, wenn nur ein paar neue Datensätze dazu kommen?

      Danke für die Hilfe (bin noch Anfänger).

      Gruß Feli

      Comment


      • #4
        Das kommt darauf an, wie gross Deine Tabelle ist.
        Aber : Da sich die Kontonummern nicht nachträglich ändern :
        Schreib Sie doch in Deiner Datenbank weg, dann brauchst Du
        Sie auch nur neu zu berechnen für die, bei denen noch keine
        Nummer eingetragen wurde.
        Das meinte ich mit db.Kontonummer := ...

        Gruss

        Stepha

        Comment


        • #5
          Hallo Stephan,

          kleines Missverständnis: klar trage ich die Nummern in der Tabelle ein. Was ich meinte ist: wie finde ich den ersten Datensatz, bei dem noch keine Nummer eingetragen ist? Deshalb die ganze Tabelle nochmal zu durchlaufen, wäre sicher unnötig.

          Geht das mit .locate? Und dann einen Datensatz zurückblättern, um die letzte Nummer und das letzte Datum zu ermitteln, oder wie würdest du es machen?

          Danke nochmal...

          Gruß Feli

          Comment

          Working...
          X