为什么我的多重SQL不起作用,而不是表达式

时间:2014-12-06 15:16:10

标签: sql oracle group-by sum multiplying

有人可以解释为什么这不起作用:

select
   supplierorder,
   company,
   forename,
   surname,
   telephone,
   order_date,
   lbs_items.name,
   price,
   quantity,
   sum (quantity * price) as "Order Total Price:"
from
   lbs_supplier_orders
   join lbs_suppliers using (supplier)
   join lbs_persons using (person)
   join lbs_addresses using (address)
   join lbs_supplier_orderlines using (supplierorder)
   join lbs_items using (item)
group by
   supplierorder

1 个答案:

答案 0 :(得分:4)

在聚合查询中,所有列都需要位于group by子句或聚合函数中(例如sum()avg()。我认为您打算使用以下内容:

select supplierorder, company, forename, surname, telephone, order_date,
       sum(quantity * price) as "Order Total Price:"
from
   lbs_supplier_orders
   join lbs_suppliers using (supplier)
   join lbs_persons using (person)
   join lbs_addresses using (address)
   join lbs_supplier_orderlines using (supplierorder)
   join lbs_items using (item)
group by supplierorder, company, forename, surname, telephone, order_date;

请注意我删除了一些列。如果包含所有可能的列,那么我想知道为什么需要聚合查询。