我有一个垂直存储数据的表,我已经展示了下面这对于每个城市的记录客户已生活在一个简单的例子:访问SQL - 返回唯一组合在现场
| CUSTOMER | CITY |
------------------------------
| John | London |
| John | Manchester |
| Sarah | Cardiff |
| Sarah | Edinburgh |
| Sarah | Liverpool |
| Craig | Manchester |
| Craig | London |
我想想出一个返回所有城市独特组合的SQL查询,在上面的例子中,约翰和克雷格都住在伦敦和曼彻斯特,但莎拉住在不同的城市(加的夫,爱丁堡和利物浦),所以我想输出如下(可处理任意数量的城市)
| CITY1 | CITY2 | CITY3 |
--------------------------------------------
| London | Manchester | |
| Cardiff | Edinburgh | Liverpool |
我一直在使用交叉表查询,以平视的数据是这样的尝试:
TRANSFORM Max(City)
SELECT Customer
FROM tblCities
GROUP BY Customer
PIVOT City
,但它只是返回现场的所有城市为每一位顾客。有谁知道这是否可以使用SQL?
p.s理想情况下它会忽略城市的秩序
如果一个人只生活在一个城市或三个城市,会发生Wbat吗? –
好问题,我希望最好的办法是为大多数城市的人提供足够的专栏,而少于这个数字的人只能填写第一个,然后填充多个专栏。 – Leroy
使用外选择不同的变换?'(客户TRANSFORM MAX(市) 选择客户 FROM tblCities 集团 PIVOT市)选择不同的*从B'? – xQbert