with a as (select 1 as column1,2 as column2 from dual),
b as (select 1 as column1,2 as column2,3 as column3 from dual),
c as (select 1 as column1,2 as column2,3 as column3,4 as column4 from dual)
select
a.column1,a.column2,b.column3
${if(detail='True',"",",sum(c.column4)")}
from a
left join b on a.column1=b.column1 and a.column2=b.column2
${if(detail='True',"","left join c on a.column1=c.column1 and a.column2=c.column2")}
where 1=1
${if(detail='True',"","group by a.column1,a.column2,b.column3")}
${if(detail='True',"order by a.column1,a.column2,b.column3","")}
試一下動態取就好了,因為你兩個數據集where條件都是一樣的這樣寫可能簡單點,速度也不會有影響