AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird 3.0 Order mit Feldname bei Union
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird 3.0 Order mit Feldname bei Union

Ein Thema von Kostas · begonnen am 11. Aug 2021 · letzter Beitrag vom 18. Aug 2021
 
jobo

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

AW: Firebird 3.0 Order mit Feldname bei Union

  Alt 13. Aug 2021, 05:27
Die Select * Frage innerhalb einer Union Konstruktion scheint mir sehr schräg. (Es ging ja um das Order by)
Ich bin davon ausgegangen, dass die * Clause lediglich im Beispiel aus Bequemlichkeit aufgeführt wurde und da nebensächlich ist.

Es sieht aber anders aus und ich frage mich wieso.
Ein Union Abfrage ist von "Natur aus" dazu da, eine einheitliche Menge aus unterschiedlich strukturierten Daten zu bilden. Eine unterschiedliche Struktur der Teilmengen führt aber zwangsläufig dazu, dass mit expliziter Angabe von Feldnamen gearbeitet werden muss.
Wenn nicht, gibt es keine unterschiedliche Struktur, dann brauche ich auch kein Union.

Zuerst wäre da die "gleiche Tabelle mit unterschiedlichen Where Clauses", das gehört m.E. in eine Abfrage mit geoderten Where Clauses.

Dann unterschiedliche Tabellen mit gleicher Struktur: das "müffelt" nach "meineDaten2020", "meineDaten2019", meine "DatenLaufendesJahr" usw.
Solche "Konstruktionen" sind am ehesten eine Designschwäche, weil z.B. die Jahresdimension in die Haupttabelle selbst gehört und vermeintliche Vorteile dieser Vorgehensweise auf lange Sicht eine fürchterliche Pfriemelei ergeben, nämlich wenn die Mengen, die eigentlich zusammen gehören an verschiedenen Stellen wieder vereinigt werden müssen. Es ist eine brauchbare Vorgehensweise dafür zu Sorgen, dass einem nie die Arbeit ausgeht und statistische Abfragen und Reports immer den Zweifel in sich tragen, ob auch alle Daten dabei berücksichtigt wurden. Sehr schön am Beispiel besonders, wenn Geschäftsjahr und Datumsjahr nicht deckungsgleich sind.
Häufiges Argument für diese Zerlegung von Tabellen ist auch das Thema Performance. Das sollte aber erst ab deutlich vielen Millionen von Datensätzen tatsächlich relevant werden und wird wenn nötig mit Partitionierung gelöst.

Ein Select * für adhoc Geschichten ist immer okay. Wenn man es systematisch und abgesichert einsetzt, z.B. in bestimmten View Schichten z.B. auch. In einem Union View ist es sehr ungewöhnlich bzw. fraglich.
Gruß, Jo
  Mit Zitat antworten Zitat
 


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 03:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz