0

你能帮我以下面的格式显示表格输出吗?

表数据 在此处输入图像描述

所需输出 在此处输入图像描述

4

2 回答 2

1

如果您拥有详尽的国家/地区列表,则必须将所有国家/地区都包含在查询中,如果列表是动态的,那么这是一个问题,唯一的方法是通过动态 sql。请试试这个并告诉我们:

SELECT
  ObjectName,
  CZ,HQ,RO,BR,SK
FROM (
  SELECT * FROM yourtable
) AS X
PIVOT
(
  SUM(counts)
  FOR CountryName
  IN (
    [CZ],[HQ],[RO],[BR],[SK]
  )
) AS PivotX
于 2021-05-17T17:11:51.857 回答
1

DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.CountryName) FROM #temptest c FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1, 1,'')

set @query = 'SELECT ObjectName, ' + @cols + ' from (select ObjectName,CountryName,counts from #temptest ) x pivot ( max(counts) for CountryName in (' + @cols + ') ) p '

执行(@查询)

于 2021-05-17T18:01:04.190 回答