我想透视表SQL Server中的销售总额。
我的表比下面的表稍微复杂一些,但这是一个很好的例子:
我追求的枢轴应如下所示:
使用MS Excel显然很简单,但是,由于我的数据非常庞大,因此将其存储在SQL Server的表中。因此,如上例所示,我需要向数据透视表编写查询。
我写的是:
SELECT DISTINCT [Day] FROM [TABLE]
PIVOT (SUM(Cost) FOR [Prod] IN([Coke], [Pepsi], [Tango])) AS PIVOTSALES
但是,我无法获得所需的结果。任何建议如何进行将不胜感激。
答案 0 :(得分:0)
您仅选择Day
。您需要将其他列添加到SELECT列表中。
将当前查询与解决方案here进行比较。
答案 1 :(得分:0)
您非常接近,您只需要将数据透视表字段添加到SELECT列表中(并删除该DISTINCT,因为数据会自动分组):
$res = $client->request('GET', "https://api.behance.net/v2/projects",
["query" => [
"q"=>$request->query,
"client_id" => "hU0hcPkrtXxTi0PH1qUB5jztXI1R7iLB"]],
['verify' => 'C:\MAMP\cacert.pem']);
但是...
我希望您的表也有一个主键,如果是这样,此查询将不起作用,因为PIVOT不仅为透视字段($client = new Client(['verify' => 'C:\MAMP\cacert.pem']);
)的值创建列,这些列将包含使用值字段(SELECT [Day], [Coke], [Pepsi], [Tango]
FROM [TABLE]
PIVOT (SUM([Cost]) FOR [Prod] IN ([Coke], [Pepsi], [Tango])) AS PIVOTSALES
),但是FROM子句中指定的所有其他列也进行Prod
。因此,如果您的表包含的列多于上述三列Cost
,GROUP BY
和Day
,则必须在FROM子句中指定一个子查询(并为其指定别名): / p>
Prod