我不知道如何让这项工作......我必须将我的数据恢复为这样
Vendor1, sum(field1), sum(field2), sum(field3), sum(field4)...
Vendor2, sum(field1), sum(field2), sum(field3), sum(field4)...
Vendor3, sum(field1), sum(field2), sum(field3), sum(field4)...
Vendor4, sum(field1), sum(field2), sum(field3), sum(field4)...
但是,我的数据不断返回
Vendor1, field1, field2, filed3 field4...
Vendor1, field1, field2, filed3 field4...
Vendor1, field1, field2, filed3 field4...
Vendor1, field1, field2, filed3 field4...
这是我到目前为止的一些内容
select substring(a.warehouse, 2, len(a.warehouse)) as 'Name of Vendor',
Case
when b.status = 3 then
sum(b.id) over (partition by substring(a.warehouse, 2, len(a.warehouse)))
else 0
End as 'Number of Orders',
Case
when b.status = 4 then
sum(b.P_Name) over (partition by substring(a.warehouse, 2, len(a.warehouse)))
else 0
End as 'Number of Items'
from [Table1]a
join [Table2]b
on a.OrderID = b.OrderID
我有许多其他的案例陈述与所示的类似。
我不知道的是 how to pivot this as a grouping
。
我希望我能清楚地解释清楚。提前感谢您的帮助。
答案 0 :(得分:0)
将整个select语句包装在另一个SELECT中,然后再包含GROUP BY。 即:
SELECT a.[Name of Vendor], sum(a.[Number of Orders]), sum(a.[Number of Items]), ...
FROM
(
select substring(a.warehouse, 2, len(a.warehouse)) as 'Name of Vendor',
Case
when b.status = 3 then
...
) AS a
GROUP BY a.[Name of Vendor]