Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [SQL] Wie kann ich eine Kreuztabelle erstellen (https://www.delphipraxis.net/95270-%5Bsql%5D-wie-kann-ich-eine-kreuztabelle-erstellen.html)

BlueStarHH 4. Jul 2007 12:28

Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX: TIBQuery

[SQL] Wie kann ich eine Kreuztabelle erstellen
 
Hallo,

ich habe mehrere Tabellen aus denen ich die Umsätze je Artikelgruppe und Monat abfragen möchte. Es soll also quasi ein Art Kreutzabelle zurückgegeben werden:

SQL-Code:
Monat Jahr  Büromöbel Gartenmöbel Küchenmöbel
5     2006     500,00    700,00       500,00
2     2007     800,00    600,00       600,00
3     2007     100,00    300,00       980,00


Ich habe folgende Tabellen mit folgenden Feldern. In Klammern die Erklärung und ein Beispielwert:

Rechnung   (Enthält Rechnungen)
-------
RgNr       (Rechnungsnr: 124)
Datum      (Datum, an dem die Rechnung ausgestellt wurde: 01.01.2007)

RechnungPos (Enthält die Positionen der Rechnungen)
----------
RgNr       (Rechnungsnr, zu der diese Position gehört (aus Tabelle Rechnung): 124)
ArtikelNr  (Artieklnummer: D-543)
Artikel    (Name des Artikels: Gartenbank)
Brutto     (Bruttopreis des Artikels: 149,90)

ArtikelGruppe
-------------
AgNr       (Artikelgruppennummer: 7)
Name       (Beschreibender Name der Artikelgruppe: Gartenmöbel)

ArtikelGruppeVK (Gibt an, welche Artikelnummern sich in einer Artikelgruppe befinden)
---------------
AgNr       (Artikelgruppennummer: 7)
ArtikelNr  (Artikelnummer, die zu dieser Artikelgruppe gehört: D-543)
Ich hab zwar schon einge Abfragen mit SQL gemacht, aber diese Kreuztabelle überforder mich leider etwas. Vielen Dank für eure Hilfe im Voraus!

mkinzler 4. Jul 2007 12:30

Re: [SQL] Wie kann ich
 
Gibt es genau diese Artikelgruppen oder beliebig viele?

BlueStarHH 4. Jul 2007 12:37

Re: [SQL] Wie kann ich
 
Zitat:

Zitat von mkinzler
Gibt es genau diese Artikelgruppen oder beliebig viele?

Beliebig viele sind möglich, da die Artikelgruppen ja selbst über zwei Tabellen (ArtikelGruppe/ArtikelGruppeVK) definiert werden können.

mkinzler 4. Jul 2007 12:43

Re: [SQL] Wie kann ich eine Kreuztabelle erstellen
 
Dann wirst du es so nicht hinbekommen. Man könnte die Tabelle vertikal durch Gruppieren erzeugen und dann in der Darstellung drehen.

BlueStarHH 4. Jul 2007 12:55

Re: [SQL] Wie kann ich eine Kreuztabelle erstellen
 
Wie kann ich denn die Tabelle vertikal durch Gruppieren erzeugen? Drehen ist nicht unbedingt nötig. Zweite Frage: Wenn es unbegrenzt viele Artiklegruppen geben könnte ich aber nicht alle sondern nur bestimmte Artikelgruppen auswerten möchte, wäre die Auswertung dann möglich? Wenn ja wie?

TBx 4. Jul 2007 13:08

Re: [SQL] Wie kann ich eine Kreuztabelle erstellen
 
Für solche Auswertungen bieten sich OLAP Cubes an.
Die kannst Du Dir z.B. im IBExpert angucken.

Gruß

Thomas

mkinzler 4. Jul 2007 16:56

Re: [SQL] Wie kann ich eine Kreuztabelle erstellen
 
Kannst du mal ne Testdb posten?

marabu 4. Jul 2007 20:33

Re: [SQL] Wie kann ich eine Kreuztabelle erstellen
 
Hallo,

hier ist ein schöner Artikel für MSSQL 2005 zum Thema Kreuztabelle:

Cross-Tab Reports in SQL Server 2005

Da lässt sich bestimmt etwas Nektar saugen ...

Grüße vom marabu

DeddyH 4. Jul 2007 20:44

Re: [SQL] Wie kann ich eine Kreuztabelle erstellen
 
Ich hätte da auch noch was in Deutsch anzubieten.


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