【问题标题】:Rollup query having joins and calculations on column?汇总查询在列上有连接和计算?
【发布时间】:2016-03-04 12:26:48
【问题描述】:

我有我的汇总查询

  Select   
      CASE 
         WHEN (GROUPING(p. product_name ) = 1) THEN 'Total'
         ELSE p. product_name END AS ProductName,
  (( o.item_price - o.discount_amount )*  o.quantity) as Total_Amount  

  from 
      products as p
  inner join 
      order_items as o on o.product_id  = p.product_id
  group by  
      p.product_name, (( o.item_price - o.discount_amount )* o.quantity) with rollup

它返回最后一行 NULL 值不给出总数 请解决这个为什么我得到总数为空

实际上,我正在使用连接和计算(如 itemprice 减去折扣并乘以数量)来获取记录,现在将 ROLLUP 应用于计算字段

【问题讨论】:

  • 你能添加一些示例记录和预期的输出吗?我们无权访问您的餐桌,因此我们需要此信息来重新审核条件。

标签: sql sql-server


【解决方案1】:

select中需要一个聚合函数:

Select (CASE WHEN (GROUPING(p. product_name ) = 1) THEN 'Total'
             ELSE p.product_name
        END) AS ProductName,
      sum((o.item_price - o.discount_amount )*o.quantity) as Total_Amount  
from products p inner join 
     order_items o
     on o.product_id  = p.product_id
group by p.product_name with rollup;

【讨论】:

猜你喜欢
  • 2020-01-02
  • 2020-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多