Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit SQL (https://www.delphipraxis.net/62283-problem-mit-sql.html)

Baeuerle 2. Feb 2006 13:16

Datenbank: Paradox • Version: 7 • Zugriff über: TQuery

Problem mit SQL
 
Hallo,

ich habe folgende Tabellen

Tabelle_1:

ID Zeit
1 18:05
2 20:00
3 11:45
8 05:00

Tabelle_2:

ID Zeit
1 18:05
3 14:46
4 09:12
5 02:58

Das ergebnis soll wie folgt aussehen

ID Zeit ID_1 Zeit_1
2 20:00
3 11:45 3 11:46
4 09:12
5 02:58
8 05:00

Kriterien:
1) ID ist gleich und Zeit ist ungleich
2) ID ist in der jeweiligen anderen Tabelle nicht vorhanden

Kann mir bitte jemand mit dem SQL-Statement auf die Sprünge helfen???

Danke

NormanNG 2. Feb 2006 14:23

Re: Problem mit SQL
 
Hi,

ist zwar MSSQL, könnte aber evtl. helfen

SQL-Code:
select t1.id, t1.zeit, t2.id, t2.zeit
from @table1 t1
left join @table2 t2 on t1.id = t2.id
where (t1.zeit<>t2.zeit) or (t2.id is null)

union

select t2.id, t2.zeit, t1.id, t1.zeit
from @table2 t2
left join @table1 t1 on t1.id = t2.id
where (t1.id is null)
Zuerst werden alle Zeilen aus Table1 geholt, die entweder andere Zeit haben oder keine Entsprechnung in Table2.
Dann kommen aus Table2 alle dazu, die nicht in Table1 enthalten sind - die mit ungleicher Zeit wurden ja bereits geholt.

marabu 2. Feb 2006 16:09

Re: Problem mit SQL
 
Hi.

Eine Alternative, die bei Verwendung von LocalSQL ein zusätzliches berechnetes Feld benötigt, wäre das hier:

SQL-Code:
select * from t1
full join t2 on t1.id = t2.id
where t1.zeit <> t2.zeit
or t1.zeit is null
or t2.zeit is null
Grüße vom marabu


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