Forum: SQL |
Thema:
Schwieriges Problem mit Kreuztabelle |
Von:
G. Guest (
29.06.2004 09:02) |
Hallo zusammen,
ich habe ein spezielles Problem mit einer Abfrage. Ich möchte quasi eine Kreuztabelle erstellen, wo bestimmte Kunden gezählt werden.
Folgende Tabellen sind vorhanden:
Tabelle "Kunde" mit den Felder "Kundennummer", "Name"
Tabelle "Zusatzdaten" mit den Feldern "Kundennummer", "Eintragsnummer", "Ausprägung"
Inhalte der Tabelle "Zusatzdaten":
==> "Kundennummer":
ist ja selbsterklärend
==> "Eintragsnummer" bzw. "Ausprägung":
Hier gibt es verschiedene Möglichkeiten. Mit der Eintragsnummer "1" kann ich die Filiale des Kunden eingeben ==> Ausprägung = Filiale
Mit der Eintragsnummer "2" kann ich den Kundenstatus angeben
==> Ausprägung "aktiv" oder "inaktiv"
Beispiele: bei einem aktiven Kunden mit der Kundennummer 123456 der Filiale 123 sind folgende zwei EInträge in der Tabelle hinterlegt:
Kundennummer: 123456, Eintragsnummer: 1, Ausprägung: 123
Kundennummer: 123456, Eintragsnummer: 2, Ausprägung: aktiv
Jetzt möchte ich folgende Auswertung haben:
1. Spalte = Filiale (also Ausprägung aus Eintragsnummer 1)
2. Spalte = Anzahl der Kunden mit Kundenstatus "aktiv"
3. Spalte = Anzahl der Kunden mit Kundenstatus "inaktiv"
Also gesprochen: Ich möchte für jede Filale wissen, wieviele Kunden dieser Filiale "aktiv" sind, und wieviele "inaktiv".
Das Problem ist also, dass die Filiale in einer anderen Tabelle steht, als die Kundendaten selbst. Und das der Kundenstatus auch in der 2. Tabelle steht. Die Verknüpfung bekomme ich dann ja ggf. über die Kundennummer hin, aber wie ????
Kann mir da irgendjemand weiterhelfen ?????
Betreff |
Von |
Datum |
|
|
Sven
Buhk
|
29.06.2004 10:41 |
|
  |
Re: Schwieriges Problem mit Kreuztabelle
<br>Versuch´s mal mit einem Decode<br><br>Select <br>Eintragsnummer as Filiale, <br>sum (Decode (Ausprägung,'aktiv',1,0)) as Anzahl_Aktiv,<br>sum (Decode (Ausprägung,'inaktiv',1,0)) as... |
 |
 |
 |
|
|
mar
dis
|
01.07.2004 13:55 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!