0

使用 SQL Server 2008,以及这个完全虚构的场景和数据,我如何转置这个(不完整的)数据库表?

(收入

决赛桌应包含其城市中的每个城镇以及与该城镇和城市相关的您(不同)动物的每种组合。

在此处输入图像描述

我一直在考虑一个支点,但找不到可以解决这个特定问题的解决方案。

我希望了解这个概念,因此我可以将该技术应用于我的真实数据,这有点复杂。

4

1 回答 1

1

您需要的解决方案是 CROSS JOIN 与自己的表三次,然后过滤掉双精度和三倍。

你可以检查这个小提琴

代码是:

SELECT  T1.Country,
        T1.Town,
        T1.Pet AS Pet1,
        T2.Pet AS Pet2,
        T3.Pet AS Pet3
FROM    Pets T1
        CROSS JOIN Pets T2
        CROSS JOIN Pets T3
WHERE   T1.Pet <> T2.Pet
        AND T2.Pet <> T3.Pet 
        AND T1.Pet <> T3.Pet    
        AND T1.Country = T2.Country
        AND T1.Country = T3.Country
        AND T1.Town = T2.Town
        AND T1.Town = T3.Town
于 2013-08-09T15:57:49.610 回答