Thema: Delphi SQL-Programmierproblem

Einzelnen Beitrag anzeigen

xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: SQL-Programmierproblem

  Alt 11. Aug 2003, 13:08
Hallo JesterX

Der SQL-Befehl UNION fügt keine Datensätze zusammen! Er dient nur dazu, Daten von mehreren Tabellen in einem Resultset zurück zu geben. Er unterdrückt jedoch doppelte Datensätze, welche genau gleich sind (alle Felder haben den gleichen Inhalt), ausser es wird mit UNION ALL gearbeitet. Es gibt eigentlich nur zwei Möglichkeiten, Dein Problem auf SQL-Basis zu lösen.
1. Du arbeitest mit Temporär-Tabellen, wenn dass Dein DB-Server unterstützt.
2. Du arbeitest ohne UNION z.B.:
Code:
SELECT aa.Id,
       Feld11 = SUM(aa.Feld1), Feld12 = SUM(aa.Feld2),
       Feld21 = SUM(bb.Feld1), Feld22 = SUM(bb.Feld2)
FROM Tab1 aa, Tab2 bb
WHERE SUBSTR(aa.id,-1) = SUBSTR(bb.id,-1)
GROUP BY aa.Id
Falls in einer der Tabellen kein Datensatz vorhanden sein muss, musst Du das WHERE noch erweitern (z.B. OR bb.Id IS NULL) und bei dem Ausgabe-Feld Id mit CASE arbeiten!

Gruss
Xaver
  Mit Zitat antworten Zitat