SQL verschieden Kombinationen in einer Zeile fest zählen

the_nobody000

Grünschnabel
Hallo,

und zwar verusche ich eine SQL Tabelle auszuwerten dabei soll das Ergebnis wie folgt aussehen.

DatumZeitOrt-AOrt-BAnzahlKombinationen
2012-07-1807:00MünchenBerlin3
2012-07-1806:00HamburgStuttgart2
2012-07-1908:00MünchenBerlin3
2012-07-2009:00MünchenBerlin3
2012-07-1908:00HamburgStuttgart2

usw...

Es soll also in der AnzahlKombinationen spalte immer der Wert stehen wieviele Kombinationen aus Ort-A und Ort-B es insgesamt in der Tabelle gibt.

Jemand ne idee wie des ghet. Probier seit geraumer Zeit vlt stehe ich auch nur auf dem schlauch.

Danke schonmal

Grüße
nobody000
 
also das ganze beruht auf einer View die ungeführ so aufgebaut ist wie oben nur ohne die AnzahlKombinationenspalte.

Nun brauche ich ein Select Query indem das Ergebnis mithilfe eines WHERE Commands eingegrenzt wird. In der letzten Spalte soll nun aber zur Auswertung alle tätsächlich vorkommenden Kombinationen als AnzahlKombinationen auftauchen. Bedeutet ich brauch hier nun den aufsummierten, gezählten Wert für jede Kombination aus der View, ohne dass die WHERE Klausel in meinem Statement dabei eingreift.

Das Ganze wird weiterhin verkompliziert damit, dass ich das Datum variabel brauche, da ich das Ganze als Query in Visual Studio Reports eingeb um einen dynamische Report zu erstellen.
 
Du kannst nicht die View als Quelle nehmen und deren WHERE aushebeln. Du musst die View kopieren und dort den WHERE löschen und damit weiterspielen.
 
Hallo,

welches DBMS verwendest du denn?
Hier mal eine einfache Variante für Oracle mit Analytics:
SQL:
WITH 
base_data AS (
  SELECT 1 as id, 'A' AS von, 'B' AS nach FROM dual
  UNION ALL 
  SELECT 2 as id, 'X' AS von, 'Y' AS nach FROM dual
  UNION ALL 
  SELECT 3 as id, 'A' AS von, 'B' AS nach FROM dual
  UNION ALL 
  SELECT 4 as id, 'X' AS von, 'Y' AS nach FROM dual
  UNION ALL 
  SELECT 5 as id, 'A' AS von, 'B' AS nach FROM dual
)
select id, von, nach, count(*) over (partition by von, nach) as cnt from base_data order by id;

Ausgabe:
Code:
ID VON NACH CNT
-- --- ---- ---
 1 A   B      3 
 2 X   Y      2 
 3 A   B      3 
 4 X   Y      2 
 5 A   B      3

Gruß Tom
 
Zurück