SQL Oracle查询计算小计

时间:2017-05-15 12:25:11

标签: sql oracle oracle11g

我正在使用谷歌搜索找到在Oracle SQL中制作小计的正确方法。录制到此我进行查询

select model,  sifra, velicina, sum(nvl(magacin,0)) as suma
from podmornica
where model ='30001'
group by  sifra, velicina, cube (model)
order by model, sifra, velicina

我有表podmornica与列:模型,sifra,velicina,magacin

但它不起作用。列模型中的每隔一行为空,最后不计算总和。怎么解决这个?     感谢

P.S。在一个模型中,我们有SIFRA的变体,我不希望每个SIFRA的一个模型的小计(在这种情况下模型是30001)。如下所示

MODEL  SIFRA     VELICINA  SUMA

30001  3000101      0        1
30001  3000102      0        2
30001  3000103      0        5
______________________________
30001                        8

2 个答案:

答案 0 :(得分:1)

这似乎是使用group by grouping sets ...

的好时机
SELECT MODEL,  SIFRA,     VELICINA,  sum(nvl(magacin,0)) as SUMA
FROM podmornica
WHERE model ='30001'
GROUP BY GROUPING SETS ((MODEL, SIFRA, VELICINA), (Model))

按模型,sifra和velicina分组以获取细节行。与magacin总结这三个领域...

按型号分组,以便显示给定模型的总和。

或者,如果您想添加列,则可以通过向select中添加sum(magacin) over (partition by model) as sumB来显示模型的每一行的总计。这种方法使用分析/窗口函数。

答案 1 :(得分:0)

可能很难找到您想要的确切内容,但我认为您需要对所有列进行多维数据集:

{{1}}