Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Temproräre Tabelle für Jubiläen Vorschau (https://www.delphipraxis.net/198894-temproraere-tabelle-fuer-jubilaeen-vorschau.html)

NoName1 8. Dez 2018 12:10

Datenbank: Interbase • Version: alle • Zugriff über: IBX

Temproräre Tabelle für Jubiläen Vorschau
 
Guten Tag,
ich möchte eine Vorschau von Jubiläen anzeigen.
In der zu Grunde liegende Tabelle gibt es die Spalte "AltJahr".
In dieser Spalte ist das akt. Alter gespeichert.
Wenn ich eine Liste erstelle wird anhand der Werte "Altjahr"
berechnet, ob es ein Jubiläum ist (AltJahre mod 5 = 0)

Ich möchte aber eine Jubiläumsliste für z. B. das Jahr 2019 oder 2020 erstellen.
Dazu habe ich gedacht, das ich eine temporäre Tabelle erstelle in dem die
Daten aus der Haupttabelle kopiert werden, mit Altjahr + X.

Meine Frage: Wie erstellt man in Interbase eine temporäre Tabelle?
Oder welchen anderen Weg muss ich gehen um zum Ziel zu gelangen?

Ich hoffe ich habe mich einigermassen verständlich ausgedrückt habe.
Vielen Dank für Eure Mühen und Hilfen im voraus.

mkinzler 8. Dez 2018 12:14

AW: Temproräre Tabelle für Jubiläen Vorschau
 
http://docwiki.embarcadero.com/Inter...emporary_Table

jobo 8. Dez 2018 14:30

AW: Temproräre Tabelle für Jubiläen Vorschau
 
Ich denke, man braucht keine Tabelle, nur eine Abfrage, also Query. Z.B. so oder ähnlich:
Delphi-Quellcode:
insert into personal values('jobo',23),('noname1',24),('mkinzler',20);

select pjubjahr, p.* 
  from personal p,
      (select 2019 as pjubjahr union all
       select 2020 union all
       select 2021 union all
       select 2022 union all
       select 2023 union all
       select 2024 union all
       select 2025 )x
where mod(p.palterAktuell+ pjubjahr,5)=0
order by pjubjahr;

>pjubjahr pname   palterAktuell
>2020      mkinzler 20
>2021      noname1  24
>2022      jobo    23
>2025      mkinzler 20
Wenn es nur um ein/nächste Jahr geht, kann man sich natürlich die "Unions" sparen.
Vielleicht gibts in Interbase auch noch einen Zeilengenerator als Ersatz für die Unions.

Ansonsten:
Ich finde es etwas merkwürdig, dass es eine Spalte mit dem aktuellen Alter gibt.
Wird diese Spalte jedes Jahr (oder zu jedem Geburtstag) angepasst?
Normalerweise nimmt man Geburtsjahr oder Geburtsdatum und berechnet von da aus alles nach Bedarf. Also die Datenbank berechnet, nicht man selbst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 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