【发布时间】:2019-10-15 18:41:47
【问题描述】:
我已经加入了 3 个表格,用于获取电子类别下每个子类别的总收入。
但在输出中,我不是为每个子类别获得特定收入,而是为每个子类别获得一个共同值(电子类别产生的总收入)。
select prod_subcat as subcat, sum(total_amt) as total_revenue
from transection
left join customer_details
on transection.cust_id = customer_details.customer_ID
left join [dbo].[Product_cat_info]
on [dbo].[transection].[prod_cat_code] = [dbo].[Product_cat_info].[Prod_Cat_cod]
where Gender like 'M' and prod_Cat in (
select prod_Cat
from [dbo].[Product_cat_info]
where prod_Cat like 'Electronics'
)
group by [prod_subcat]
我得到的输出是
subcat total_revenue
Personal Appliances 5702069
Mobiles 5702069
Computers 5702069
Audio and video 5702069
Cameras 5702069
【问题讨论】:
-
如果还不算太晚,我建议您更改表的名称。交易中没有字母“e”。另外,为什么使用像'M'? ='M'怎么样。 Like 用于通配符搜索。当你知道你想要的值时,你应该使用 =。为了在这里真正提供帮助,我们需要一些细节。 minimal reproducible example
-
prod_Cat like 'Electronics'应该是prod_Cat = 'Electronics' -
like 是一项昂贵的操作;如果您确定 prod_Cat = 'Electronics' 这样做。性别相同。将帮助您更快地获得所需的结果集。
标签: sql sql-server