查询以匹配列 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];
这个有点棘手。由于 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];