I (obwohl Ihre erwartete Ausgabe für Szenario S_8 falsch ist, und verwendeten Sie kleingeschrieben s in Ihrer where-Klausel) nicht ein Problem mit Ihrer Anfrage sehen:
with table1 as (select 'A' name, 123 id, 'S_1' scenario, 2 timespend from dual union all
select 'A' name, 123 id, 'S_1' scenario, 5 timespend from dual union all
select 'A' name, 123 id, 'S_3' scenario, 6.3 timespend from dual union all
select 'B' name, 124 id, 'S_1' scenario, 3 timespend from dual union all
select 'B' name, 124 id, 'S_1' scenario, 8.9 timespend from dual union all
select 'B' name, 124 id, 'S_1' scenario, 5 timespend from dual union all
select 'B' name, 124 id, 'S_1' scenario, 4 timespend from dual union all
select 'B' name, 124 id, 'S_5' scenario, 1.23 timespend from dual union all
select 'B' name, 124 id, 'S_5' scenario, 56 timespend from dual union all
select 'B' name, 124 id, 'S_5' scenario, 8 timespend from dual union all
select 'B' name, 124 id, 'S_8' scenario, 9 timespend from dual union all
select 'B' name, 124 id, 'S_8' scenario, 4 timespend from dual union all
select 'C' name, 125 id, 'S_8' scenario, 6 timespend from dual union all
select 'D' name, 126 id, 'S_2' scenario, 9 timespend from dual union all
select 'D' name, 126 id, 'S_4' scenario, 5 timespend from dual union all
select 'D' name, 126 id, 'S_4' scenario, 6.2 timespend from dual union all
select 'D' name, 126 id, 'S_4' scenario, 7 timespend from dual union all
select 'E' name, 127 id, 'S_1' scenario, 8 timespend from dual union all
select 'E' name, 127 id, 'S_1' scenario, 1 from dual)
-- end of mimicking your table1 with data in it. See SQL below:
select sum(timespend),
scenario
from table1
where scenario in ('S_1','S_3','S_4','S_5','S_8')
and name = 'B'
group by scenario
order by scenario;
SUM(TIMESPEND) SCENARIO
-------------- --------
20.9 S_1
65.23 S_5
13 S_8
Vielleicht aus der Tatsache zu urteilen dass einige der Szenariodaten in Ihren Beispieldaten in Kleinbuchstaben sind und Sie erwähnt haben, dass Sie nach der set of scenarios that look similar
gesucht haben, möchten Sie vielleicht stattdessen Folgendes?
select sum(timespend),
upper(scenario) scenario
from table1
where upper(scenario) in ('S_1','S_3','S_4','S_5','S_8')
and name = 'B'
group by upper(scenario)
order by upper(scenario);
Können Sie bitte die Ausgabe Ihrer Abfrage und die Ausgabe, die Sie benötigen, posten? – Aleksej
Sie wollen die Summe der Zeitspannen und Sie erhalten die Summe der Zeitspannen. Ich bin jetzt sehr verwirrt. –
Ich habe meine Abfrage aktualisiert. Ich möchte die Summe der Zeitspannen für eine Reihe von Szenarien, die für Name B ähnlich aussehen. Aber ich bekomme Summe für alle Szenarien – surendar