Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mehrere Datensätze in einer Zeile? (https://www.delphipraxis.net/116651-mehrere-datensaetze-einer-zeile.html)

Overclocker 3. Jul 2008 19:59

Datenbank: access • Zugriff über: ado

mehrere Datensätze in einer Zeile?
 
Hi,

folgendes Problem:

Folgendes Szenario:
Tabelle: Bestellung
Bestellnr Artikelnr
1 580
1 581
1 582
1 583
2 585
2 586



So, jetzt möcht ich sozusagen eine Abfrage machen, um in der 1. Spalte den Kundenname zu haben und in den restlichen Spalten rechts NEBENEINANDER die artikel.
Es gibt sozusagen 3 Tabellen: Kunden, Bestellungen (mit Infos wie lieferbedingungen usw., uninteressant), Artikel

So jetzt mach ich sozusagen einen query mit Joins über alle 3 Tabellen.

Ich bekomm das alles schon so hin dass ich Kundenname und die Artikelnamen habe.

Problem ist nur, dass die Datensätze alle UNTEREINANDER angezeigt werden.

Gibt es ne möglichkeit alles in einer Zeile anzuzeigen?

Ich hoffe es ist einigermaßen verständlich, ist nämlich echt komplex.

Gruß

mkinzler 3. Jul 2008 20:03

Re: mehrere Datensätze in einer Zeile?
 
Z.B. mit Subselects. Nennt man auch Pivot

Overclocker 3. Jul 2008 20:07

Re: mehrere Datensätze in einer Zeile?
 
aber mit nem subselect kann ich ja nur 1 datensatz zurückgeben oder?

was ist wenn ich eine schöne tabelle machen möchte, wo links alle kunden namen und rechts die bestellten artikel aufgelistet sind ?

mkinzler 3. Jul 2008 20:15

Re: mehrere Datensätze in einer Zeile?
 
Natürlich in Verbindung mit entsprechender Limitierung
Kunde 1.Artikel, 2. Artikel, ...

omata 3. Jul 2008 20:18

Re: mehrere Datensätze in einer Zeile?
 
Datenbank->Neu->PivotTable-Assistent

Overclocker 3. Jul 2008 20:24

Re: mehrere Datensätze in einer Zeile?
 
datenbank-neu???
Das ist ne access datenbank.


und wie meinst du das mit limitierungen???

mkinzler 3. Jul 2008 20:29

Re: mehrere Datensätze in einer Zeile?
 
Mit Limitierung meine ich den 1ersten, den ersten nach Überspringen des 1. (alos den 2.) u.s.w.
Kenne mich in Access nicht aus bei
FB wäre es
SQL-Code:
first 1
,
SQL-Code:
first 1 skip 1
, ...
bei MySQL
SQL-Code:
limit 1
,
SQL-Code:
limit 1,1
, ...
bei Interbase/FB
SQL-Code:
rows 1
,
SQL-Code:
rows 1,1
, ...

Overclocker 3. Jul 2008 20:34

Re: mehrere Datensätze in einer Zeile?
 
glaub irgendwie versteh ich das mit dem limit nicht. was bringt mir der wenn er eins weiter springt?

ausserdem geht der befehl in acces nicht :(

ist das so etwas wie TOP 10 oder sowas?

noch jemand n vorschlag bzw. ein beispiel?

omata 3. Jul 2008 20:37

Re: mehrere Datensätze in einer Zeile?
 
Neuer Versuch...

Abfrage erstellen...
Datenbank->Abfragen->Entwurfsansicht
Person.Name, Person-Produkt.ID, Produkt.Name

Kreuztabelle erstellen...
Datenbank->Abfragen->Kreuzabfrage-Assistent
- obige Abfrage auswählen, weiter
- person.name hinzufügen, weiter
- produkt.name hinzufügen, weiter
- produkt_id markieren, Anzahl auswählen, weiter
- Fertig stellen

mkinzler 3. Jul 2008 20:41

Re: mehrere Datensätze in einer Zeile?
 
Zitat:

glaub irgendwie versteh ich das mit dem limit nicht. was bringt mir der wenn er eins weiter springt?
Er springt nicht weiter, sondern liefert einen Ausschnitt des Ergebnis

Tabelle: Bestellung
Bestellnr Artikelnr
1 580
1 581
1 582
1 583
2 585
2 586

SQL-Code:
select
    distinct t1.Bestellnr,
    (select Artikelnummer from Bestellung where bestellnr = t1.Bestellnr limit 1),
    (select Artikelnummer from Bestellung where bestellnr = t1.Bestellnr limit 1,1)
    ...
from
    Bestellung t1;
liefert

1 580 581 ...
2 585 586 ...


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

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