我遇到了Oracle SQL数据库问题,我面临的问题是我正在尝试执行两个聚合操作,但我正在进行两个查询来执行这些操作。我正在扫描同一个表(TableOne)两次。我有一个需要发生的连接才能进行聚合。有没有办法利用case语句一次性完成整个查询?
select PAR, SUM(PLANQUANT) AS VALONE
from
(select ODRP.PAR, ODRP.PLANQUANT from TableOne ODRP
inner join TableTwo LOC
on ODRP.LOCID = LOC.LOCID and LOC.LOCNAME like '%_USD'
where ODRP.TYPEID IN (5,6))
group by PAR;
select PAR, SUM(PLANQUANT) AS VALTWO
from
(select ODRP.PAR, ODRP.PLANQUANT from TableOne ODRP
inner join TableTwo LOC
on ODRP.LOCID = LOC.LOCID and LOC.LOCNAME like 'BAT_USD'
where ODRP.TYPEID IN (1))
group by PAR
我相信这样的查询会以
开头select PAR, SUM(PLANQUANT) AS VALONE, SUM(PLANQUANT) AS VALTWO
from
(select ODRP.PAR, ODRP.PLANQUANT from TableOne ODRP
inner join TableTwo LOC
on ODRP.LOCID = LOC.LOCID and LOC.LOCNAME like '%USD'
where ODRP.TYPEID IN (1, 5, 6))
然后我知道我至少在小组中也需要案例陈述,也可能是连接?
任何帮助将不胜感激
答案 0 :(得分:1)
尝试这样的事情......
syms x y yr
yr= @(x) real(1.2*sin(x)+2*log(x+2)-5);
fr=fzero(yr,0);
fr =
6.8458
y= @(x) (1.2*sin(x)+2*log(x+2)-5);
y(fr)
ans =
-8.8818e-16
也在CASE语句中添加LOCNAME的条件。我没有意识到这两个查询也有所不同。