Sql 透视数据以获得所需的端视图
我的数据在数据库表中Sql 透视数据以获得所需的端视图,sql,sql-server,pivot-table,Sql,Sql Server,Pivot Table,我的数据在数据库表中 SELECT [Quote Reference Number] ,[Value] ,[Method] ,[Country] ,[SubRegion] ,[Route 1 or Route2] ,[TYPE A or B ] FROM Table 1 我想要的摘要视图 世界观 Subregion | Country | Count of Route1 + Type A quotes | Coun
SELECT [Quote Reference Number]
,[Value]
,[Method]
,[Country]
,[SubRegion]
,[Route 1 or Route2]
,[TYPE A or B ]
FROM Table 1
我想要的摘要视图
世界观
Subregion | Country | Count of Route1 + Type A quotes | Count of Route1 + Type B quotes| Count of Route2 + Type A quotes | Count of Route2 + Type B quotes| All Routes & Types |
欧洲、中东和非洲视图
Subregion | Country | Count of Route1 + Type A quotes | Count of Route1 + Type B quotes| Count of Route2 + Type A quotes | Count of Route2 + Type B quotes| All Routes & Types |
我可以通过创建一个包含两行的表来完成这项工作,只需执行大量sql查询来填充所有字段,但被告知可以通过在数据库中旋转来完成,但不知道具体如何完成
有人能提供一些帮助吗?在这种情况下,Pivot将很困难(但并非不可能),因为。。。在中,子句分别包含一个字段和一组值,而不是条件语句。你最好使用
和/格
SELECT
[Country]
,[SubRegion]
,SUM (CASE WHEN [Route 1 or Route2] = 'Route1' AND [TYPE A or B ] = 'A'
THEN 1 ELSE 0 END)
as [Count of Route1 + Type A quotes ]
,SUM (CASE WHEN [Route 1 or Route2] = 'Route1' AND [TYPE A or B ] = 'B'
THEN 1 ELSE 0 END)
as [Count of Route1 + Type B quotes ]
,SUM (CASE WHEN [Route 1 or Route2] = 'Route2' AND [TYPE A or B ] = 'A'
THEN 1 ELSE 0 END)
as [Count of Route2 + Type A quotes ]
,SUM (CASE WHEN [Route 1 or Route2] = 'Route2' AND [TYPE A or B ] = 'B'
THEN 1 ELSE 0 END)
as [Count of Route2 + Type B quotes]
,COUNT(*) All Routes & Types
FROM [Table 1]
GROUP BY
[Country]
,[SubRegion]
我认为你的方法是正确的。测试了一下,我觉得不错!