Sql 如何在透视查询中使用union all
我正在使用上面的查询构建一个图表。现在,我可以将Sql 如何在透视查询中使用union all,sql,union-all,Sql,Union All,我正在使用上面的查询构建一个图表。现在,我可以将站点作为我的x系列。我需要把它放在第一排。我曾考虑使用UNION ALL,但不允许使用,因为我无法解析它 简而言之,我想添加另一行(在第一行)以获得如下结果: select risk, [ADAB] as ADAB, [Bahrain] as Bahrain, [Kuwait] as Kuwait, [Masirah] as Masirah, [Qatar] as Qatar from (select risk, piv_site = risk,
站点
作为我的x系列。我需要把它放在第一排。我曾考虑使用UNION ALL
,但不允许使用,因为我无法解析它
简而言之,我想添加另一行(在第一行)以获得如下结果:
select risk, [ADAB] as ADAB, [Bahrain] as Bahrain, [Kuwait] as Kuwait, [Masirah] as Masirah, [Qatar] as Qatar
from (select risk, piv_site = risk, site
from qcvqciffull
where (1=1) AND Risk is not null) as ps
pivot (count(piv_site)
for site in ([ADAB], [Bahrain], [Kuwait], [Masirah], [Qatar])) as pvt
+------+------+---------+--------+---------+-------+
|风险| ADAB |巴林|科威特|马西拉|卡塔尔|假设您使用的是MS SQL Server:
+------+------+---------+--------+---------+-------+
| Risk | ADAB | Bahrain | Kuwait | Masirah | Qatar | <-- Header
+------+------+---------+--------+---------+-------+
| Risk | ADAB | Bahrain | Kuwait | Masirah | Qatar | <-- Start of row
+------+------+---------+--------+---------+-------+
| 1 | 2 | 3 | 4 | 5 | 3 |
+------+------+---------+--------+---------+-------+
| 2 | 3 | 2 | 5 | 1 | 2 |
+------+------+---------+--------+---------+-------+
如果要在结果集的第一行中显示列标题文本,则必须将所有列强制转换为VARCHAR数据类型,这可能会在其他地方造成问题。。。大多数图表工具都支持将x轴(类别)数据放在一个单独的列中,因此您是否绝对确定需要在SQL查询中透视数据?你在用什么制图工具?是的。或者你知道有任何类似的查询结果相同吗?我想你不明白我的评论。不必将列标题作为第一行数据重复。您在图表中使用的应用程序是什么?报告服务?擅长?无论如何,这个问题应该在图表应用程序中解决,而不是在查询中。
SELECT 'Risk','ADAB','Bahrain','Kuwait','Masirah','Qatar'
UNION ALL
select CONVERT(VARCHAR,risk)
,CONVERT(VARCHAR,[ADAB]) as ADAB
,CONVERT(VARCHAR,[Bahrain]) as Bahrain
,CONVERT(VARCHAR,[Kuwait]) as Kuwait
,CONVERT(VARCHAR,[Masirah]) as Masirah
,CONVERT(VARCHAR,[Qatar]) as Qatar
from (select risk, piv_site = risk, site
from qcvqciffull
where (1=1) AND Risk is not null) as ps
pivot (count(piv_site)
for site in ([ADAB], [Bahrain], [Kuwait], [Masirah], [Qatar])) as pvt