查询以匹配列 header 的值进行转置

Query to Transpose with values matching column header

这个有点棘手。由于 table1 中的某些值将与 table2 中的列 header 和按 ID 分组的记录,我尝试使用以下查询但失败了:

TRANSFORM Persons
SELECT ID, City, Country
FROM Table1
GROUP BY ID, City, Country
PIVOT Group;

这只是一个简单的支点。我没有看到任何阻碍。

类似的问题是“Convert Rows to columns using 'Pivot' in SQL Server”。

但我更愿意阅读有关使用 VB 和 Access 旋转的内容。 在 MSDN 上,您可以找到 TRANSFORM Statement.

我刚试过这个 SQL。

TRANSFORM Count(Grouping.Country) AS CountOfCountry
SELECT ID, City, Country
FROM Grouping
GROUP BY ID,City,Country
PIVOT Group;

这给了我这个。

我认为你所能做的就是数数,所以最终结果会与你在示例中显示的有所不同。我可能是错的,但我认为这已经很接近了。

我想你快到了 - 你缺少 TRANSFORM 子句的聚合函数(在你的情况下是 SUM),并且 Group 是保留字,它应该在 [square括号].

TRANSFORM Sum(Persons)
SELECT ID, City, Country
FROM Table1
GROUP BY ID, City, Country
PIVOT [Group];