PDA

Vollständige Version anzeigen : Summenproblem in Kreuztabellenabfrage


Lone Wolf
05.03.2002, 11:46
Hallo Leute!

Brauche Eure dringend Eure Hilfe:

Ich habe eine Kreuztabellenabfrage, die mir aus einer Select-Abfrage heraus Städte herausliest und als Zeilen ausgibt und als Spalten den Zeitraum Quartal oder Monat. In den Schnittpunkten erhalte ich die jeweiligen Summen der Umsätze.

Soweit, sogut. Funktioniert.

Aber nun will ich, daß nicht alle Werte als Summen berechnet werden, sondern nur die die keinen Flag mitgeliefert bekommen in der SELECT-Abfrage. Problem dabei ist, ich will nicht die Spalten oder die Zeilen meiner Datensätze unterdrücken, sondern den Flag-Daten sozusagen 0/Null zuweisen, also nichts summieren.

Hier ist die SELECT-Abfrage:

SELECT tblStadt.Stadt, tblReiseDetails.AnreiseDatum, tblReiseDetails.GesamtKosten, tblReiseDetails.RKWeiter, tblReiseDetails.HKWeiter
FROM tblStadt INNER JOIN (tblHotel INNER JOIN tblReiseDetails ON tblHotel.LfdNr=tblReiseDetails.LfdHotel) ON tblStadt.LfdNr=tblHotel.LfdStadt;

Und hier die bisherige Kreuztabellenabfrage:

TRANSFORM Sum(qryStandortDatumKosten.GesamtKosten) AS SummevonGesamtKosten
SELECT qryStandortDatumKosten.Stadt, Sum(qryStandortDatumKosten.GesamtKosten) AS [Gesamtsumme von GesamtKosten], qryStandortDatumKosten.RKWeiter, qryStandortDatumKosten.HKWeiter
FROM qryStandortDatumKosten
GROUP BY qryStandortDatumKosten.Stadt, qryStandortDatumKosten.RKWeiter, qryStandortDatumKosten.HKWeiter
PIVOT "Qrtl " & Format([AnreiseDatum],"q");

DANKE FÜR JEDEN TIPP!

Joachim Hofmann
05.03.2002, 20:46
Hallo,

ich bin kein Kreuttabellenexperte...
es gibt aber in der SQL-Server (7) - Hilfe einen Artikel, wie man einen Kreuztabellenbericht mit T-SQL erstellt, im Knoten:
Datenzugriff- und Änderungen -> Erweiterte Abfragekonzepte -> Lösungen für allgemeine Probleme mit Abfragen -> "Kreuztabellenberichte".
Oder *Suchen* nach Stichwort "Kreuztabellenberichte".

HTH

Sascha Trowitzsch
06.03.2002, 10:35
@Lone Wolf:
Welches soll denn dein Flag sein in der Abfrage??
Unter RKWeiter etc. kann man sich nichts vorstellen. Außerdem: Um was für ein System geht's? Access, SQL-Server?

Aber allgemein:
Angenommen, du hättest ein Bool-Feld, welches als Flag benutzt werden soll und z.B. FLG hieße, und das auf TRUE gesetzt würde, wenn die Kosten dieses DS summiert werden sollten, dann ginge es einfach so:

SUM(-(qryStandortDatumKosten.FLG)*(qryStandortDatumKosten.GesamtKosten)) AS SummevonGesamtKosten

Ciao, Sascha