我正在处理一个使用大量表的查询。我试图捕捉的一些价值观将需要我做一些额外的工作。
我要捕获的基本字段直接来自表格。简单。但是,我需要的某些字段需要其他编码。
例如,我需要找到客户为特定产品支付的金额。因此,我需要在每个字段的WHERE语句中添加产品类型名称。
我知道我可以对每个子查询使用子查询,但是我将需要在这些子查询中的每个子查询上连接至少4个不同的表,然后添加2个WHERE语句:一个将数据链接到主查询,另一个具体选择我要选择的产品。
我的问题是,从性能角度来看,最好的方法是什么?我应该执行一堆子查询,还是为每个产品使用临时表,然后在查询结束时使用左联接将它们组合在一起?
很抱歉,我没有任何代码可发布此问题。我现在无法访问我的计算机。
答案 0 :(得分:0)
这是一个示例查询,我认为会根据一些注释并基于完全组成的表来回答您要执行的操作:
select customerid, customername,
sum(case when producttype='shoes' then salesvalue else 0 end) as ShoeValue,
sum(case when producttype='tshirt' then salesvalue else 0 end) as TShirtValue
from customer
join sales on sales.customerid=customer.customerid
group by customerid, customername