2014-05-05 145 views
1

我需要添加一个额外的列,将获得总销售额%。我试图这样做,加入:聚合功能与分区

Book_sales/SUM(Book_sales) As 'Total_Sales%' 

但是,这是行不通的。因为这是一个聚合函数,SQL需要,我会组publ_id我不想做enter image description here

+0

什么是错的在你的截图中查询?从我所坐的地方看,它看起来很有效,而且看起来也是做这项工作的方式。 –

回答

1

,我认为你应该加入与分组查询与汇总查询:

SELECT 
    .... 
    OD.Quantity*OD.Order_price/SUM_OD.Book_Total As 'Total_Sales%'  
    .... 

FROM Books AS BKS 
INNER JOIN order_details AS OD ON BKS.book_id=OD.book_id 
INNER JOIN 
    (SELECT book_id, 
      SUM(Quantity*Order_price) as Book_Total 
    FROM order_details 
    GROUP BY book_id 
) AS SUM_OD ON BKS.book_id=SUM_OD.book_id 
+0

正是我在找的东西。很棒!谢谢! –