У меня есть запрос я должен суммировать все ВМ по CUSTOMER_NAME, tier_name, vm_name Таким образом, каждому vm_will выходного обобщённом списка ярусов хранения использует их использованияOracle GroupBy и OrderBy вопрос
so if vm1 is using tier1 and tier2 belonging to Customer1 entries are like so,
tier1.entry=100
tier1.entry2=100
tier2.entry1 = 50
tier2.entery1 = 40
таким образом каждые возвращенные Общая сумма вывода будет выглядеть примерно так:
customer1 VM1 Уровень1 Всего = 200 customer1 VM1 Уровень2 Всего = 90
, но это дает мне эту ошибку:
SQL> select customer_name,
2 tier_name,
3 substr(decode(vcd_managed,'Y',vm_name,'N',vm_group_name || '/' || vm_display_name),1,100) vm_name,
sum(provisioned_gb) Provisioned_GB,
sum(consumed_gb) Consumed_GB
from customers a,
vm_groups b,
vms c,
vm_storage_histories d,
datastores e,
storage_tiers f
4 5 6 7 8 9 10 11 12 where a.customer_id = b.customer_id
13 and b.vm_group_id = c.vm_group_id
14 and c.vm_id = d.vm_id
15 and d.datastore_id = e.datastore_id
16 and e.storage_tier_id = f.storage_tier_id
17 and trunc(d.datetime) = to_date('01-Aug-2014', 'DD-MON-YYYY')
18 and a.customer_id != 24 -- enki
19 and a.customer_id != 1 -- unassigned
20 group by customer_name,tier_name, vm_name
21 order by 1,2,3
22
SQL>/
substr(decode(vcd_managed,'Y',vm_name,'N',vm_group_name || '/' || vm_display_name),1,100) vm_name,
*
ERROR at line 3:
ORA-00979: not a GROUP BY expression
Вот мой запрос:
select customer_name,
tier_name,
substr(decode(vcd_managed,'Y',vm_name,'N',vm_group_name || '/' || vm_display_name),1,100) vm_name,
sum(provisioned_gb) Provisioned_GB,
sum(consumed_gb) Consumed_GB
from customers a,
vm_groups b,
vms c,
vm_storage_histories d,
datastores e,
storage_tiers f
where a.customer_id = b.customer_id
and b.vm_group_id = c.vm_group_id
and c.vm_id = d.vm_id
and d.datastore_id = e.datastore_id
and e.storage_tier_id = f.storage_tier_id
and trunc(d.datetime) = to_date('01-Aug-2014', 'DD-MON-YYYY')
and a.customer_id != 24 -- enki
and a.customer_id != 1 -- unassigned
group by customer_name,tier_name, vm_name
order by 1,2,3
/