Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eine etwas komplexere Sortierung (https://www.delphipraxis.net/69571-eine-etwas-komplexere-sortierung.html)

pinhead 17. Mai 2006 13:07

Re: Eine etwas komplexere Sortierung
 
ich habe es mal versucht so auf meine Tabellen anzuwenden:

exklusives Beispiel:

SQL-Code:
SELECT    dbo.tblAdresse.vCh100_NameFirma AS Name, dbo.tblVertragsabschluss.int10_VertragsabschlussID
FROM        dbo.tblVertragsabschluss LEFT OUTER JOIN
                      dbo.tblAdresse ON dbo.tblVertragsabschluss.int10_BezAdressenID_AB = dbo.tblAdresse.int10_AdressenID
WHERE    (dbo.tblVertragsabschluss.vCh8_AbschlussDatum > N'20060301')
UNION
SELECT    dbo.tblAdresse.vCh100_NameFirma AS Name, dbo.tblVertragsabschluss.int10_VertragsabschlussID
FROM        dbo.tblVertragsabschluss LEFT OUTER JOIN
                      dbo.tblAdresse ON dbo.tblVertragsabschluss.int10_BezAdressenID_S1 = dbo.tblAdresse.int10_AdressenID
WHERE    (dbo.tblVertragsabschluss.vCh8_AbschlussDatum > N'20060301')
UNION
SELECT    dbo.tblAdresse.vCh100_NameFirma AS Name, dbo.tblVertragsabschluss.int10_VertragsabschlussID
FROM        dbo.tblVertragsabschluss LEFT OUTER JOIN
                      dbo.tblAdresse ON dbo.tblVertragsabschluss.int10_BezAdressenID_S2 = dbo.tblAdresse.int10_AdressenID
WHERE    (dbo.tblVertragsabschluss.vCh8_AbschlussDatum > N'20060301')
ORDER BY Name
allerdings spuckt er mir so nur ein Feld mit dem Namen aus, nicht alle 3.

edit:
allerdings scheint die Sortierung so geklappt zu haben.... nun habe ich die VertragsabschlussID's und kann die einfach anhand eines zweiten Datasets Stück für Stück abarbeiten... Geht zwar bestimmt noch einfacher, aber wenigstens habe ich jetzt schonmal einen Lösungsweg.

Vielen Dank schonmal soweit, aber falls jemand weiss wie ich dies mit einer einzigen SQL Anweisung (einem einzigen Dataset) hinbekomme, wäre das natürlich noch besser :)

marabu 17. Mai 2006 13:33

Re: Eine etwas komplexere Sortierung
 
Ich habe mal zwei Tabellen erzeugt:

SQL-Code:
CREATE TABLE [dbo].[Vertraege] (
   [ID] [int] IDENTITY (1, 1) NOT NULL ,
   [DATUM] [datetime] NOT NULL ,
   [P1] [int] NULL ,
   [P2] [int] NULL ,
   [P3] [int] NULL
)
Code:
// Vertraege
1    2006-05-17 00:00:00.000    1    NULL   NULL
2    2006-05-17 00:00:00.000    2    3       NULL
SQL-Code:
CREATE TABLE [dbo].[Personen] (
   [ID] [int] IDENTITY (1, 1) NOT NULL ,
   [NAME] [nvarchar] (50) COLLATE Latin1_General_CI_AS NULL
)
Code:
// Personen
1   Müller
2   Meier
3   Schulze
Hier die Abfrage:

SQL-Code:
select name, v.* 
from vertraege v
join personen p on v.p1 = p.id
UNION
select name, v.* 
from vertraege v
join personen p on v.p2 = p.id
UNION
select name, v.* 
from vertraege v
join personen p on v.p3 = p.id
Geliefert wird dann:

Code:
Meier    2   2006-05-17 00:00:00.000   2   3      NULL
Müller   1   2006-05-17 00:00:00.000   1   NULL  NULL
Schulze  2   2006-05-17 00:00:00.000   2   3      NULL
marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.
Seite 2 von 2     12   

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