Hallo hawe,
ich orientiere mich einmal an Deinem Ausgangsbeitrag mit folgender Tabelle Tab_Summe

- Tab_Summe.png (13.26 KiB) 1864 mal betrachtet
Diese Tabelle wird mit einer laufenden Nummer versehen.
Code: Alles auswählen
SELECT "Tab_Summe".*, ( SELECT COUNT( * ) FROM "Tab_Summe" AS "Tab_Sub" WHERE "Tab_Summe"."ID" >= "Tab_Sub"."ID" ) AS "lfd" FROM "Tab_Summe"
Das Ergebnis ist folgendes:

- Tab_Summe_V.png (11.39 KiB) 1866 mal betrachtet
Obige Abfrage wird als View Tab_Summe_V gespeichert (rechte Maustaste auf Abfrage >> als Ansicht speichern), um im nächsten Schritt darauf zuzugreifen.
Jetzt wird der View abgefragt und anhand der laufenden Nummer ausgewertet: ("SQL Kommando direkt ausführen" muss aktiviert sein)
Code: Alles auswählen
SELECT
"Sw",
"Sb",
"Zeit"
FROM
(
SELECT
"Gruppe",
"Sw",
"Sb",
sum("t") AS "Zeit"
FROM
(
SELECT
*
,CASE
WHEN "lfd" = (SELECT min("lfd") FROM "Tab_Summe_V") THEN "lfd"
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-1 = "B1"."lfd")) THEN "lfd"
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-2 = "B1"."lfd")) THEN "lfd"-1
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-3 = "B1"."lfd")) THEN "lfd"-2
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-4 = "B1"."lfd")) THEN "lfd"-3
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-5 = "B1"."lfd")) THEN "lfd"-4
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-6 = "B1"."lfd")) THEN "lfd"-5
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-7 = "B1"."lfd")) THEN "lfd"-6
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-8 = "B1"."lfd")) THEN "lfd"-7
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-9 = "B1"."lfd")) THEN "lfd"-8
WHEN (CONCAT("Sw","Sb") <> (SELECT CONCAT("Sw","Sb") FROM "Tab_Summe_V" "B1" WHERE "Tab_Summe_V"."lfd"-10 = "B1"."lfd")) THEN "lfd"-9
else (SELECT min("lfd") FROM "Tab_Summe_V")
End "Gruppe"
FROM
"Tab_Summe_V"
)
GROUP BY "Gruppe","Sw","Sb"
)
Ergebnis:

- Ergebnis.png (5.77 KiB) 1866 mal betrachtet
Die Abfrage berücksichtigt in dieser Form max. 10 aufeinanderfolgende gleiche Kombinationen von Sw und Sb, könnte aber durch entsprechende Einträge unter CASE ... WHEN erweitert werden. Ich bin mir nicht sicher, ob eine dynamische Umsetzung unter HSQLDB möglich ist. Ich vermute nein.
Vielleicht findest Du in diesem Beispiel einige Anregungen, Deine eigene Lösung zu finden.
Gruß Barlee