我有两张桌子,产品(pid,pname,quantityinhand,价格,折扣) 购买(pid,qty,p_time,total_price)//其中,qty是销售单位数。 我需要找到pname,pdate(以y yyyy格式),特定月份每个pid的总销售量,一个月内销售的产品总价,平均价格(total_price / quantity)。
查询我尝试如下
select pname, p_time, qty_month, amount_month, avg_sale
FROM
( select p.pname, to_char(q.ptime,'MON yyyy') p_time,
sum(qty) as qty_month, sum(total_price) as amount_month,
(q.total_price/q.qty) as avg_sale from products p, purchases q
where p.pid=q.pid
group by pname, ptime)
我收到此错误 - > (q.total_price / q.qty)作为产品p的avg_sale,购买q
第4行的错误:ORA-00979:不是GROUP BY表达式。
我做错了什么?
我需要找到每种产品的月度统计数据。
通过pname,ptime,total_price,qty" 添加"分组,我将获得所需的过程的另一个问题,该过程将pid作为参数和给出每月销售统计数据,包括产品表中的pname。
答案 0 :(得分:1)
试试这个
SELECT pname,
p_time,
qty_month,
amount_month,
(amount_month/qty_month) as avg_sale
FROM
(
SELECT p.pname,
to_char(q.ptime,'MON yyyy') p_time,
sum(qty) as qty_month,
sum(total_price) as amount_month
FROM products p, purchases q
WHERE p.pid=q.pid
GROUP BY pname, to_char(q.ptime,'MON yyyy')
)