使用“组头"动态分组

2021-09-10 00:00:00 sql tsql sql-server

谁能帮我解决这个问题.我有一张表,上面有 Products、ProductsSales.这是它们的一些屏幕截图.

Could someone help me with this problem. I have a table with Products, ProductsSales. Here are some screenshots of them.

现在我想做一个 TSQL 查询,它可以对它们进行分组并添加诸如标题描述"之类的内容?类似这样的

Now I would like to make a TSQL query which can group them and add something like a "header description"? Something like this

如果是相对动态的查询就完美了.

It would be perfect, if it is a relatively dynamically query.

有人可以在这里帮助我或给我一些提示吗?

推荐答案

我倾向于对类别进行逆透视,然后聚合:

I would be inclined to unpivot the categories and then aggregate:

select which, name, sum(price)
from products p cross apply
     (values ('productName', productName),
             ('groupName', groupName),
             ('parentGroup', parentGroup)
     ) v(which, name) left join
     productsales ps
     on ps.productId = p.productId
group by which, name;

相关文章