TSQL 中 MS-Access 交叉表查询的等价物是什么?还有更好的方法吗?

我有一个这样组织的数据:

Fish
ID   Name
---- ---------
1    Jack
2    Trout
3    Bass
4    Cat

FishProperty
ID   FishID Property Value
---- ------ -------- -----
1    1      Length   10
2    1      Girth    6
3    1      Weight   4
4    2      Length   6
5    2      Weight   2
6    3      Girth    12

我有许多用户需要对数据进行报告,并且(显然)如果他们能像这样看到它,对他们来说会更容易:
Fish
ID   Name      Length Girth Weight
---- --------- ------ ----- ------
1    Jack      10     6     4
2    Trout     6            2
3    Bass             12

我的计划是创建一个他们可以直接报告的类似交叉表的 View 。

最佳答案

你在找 PIVOT 吗?

编辑 :在看到 PIVOT 语法的用法之前,您可能需要进入第二页。

编辑 2 :另一个 example

示例 :

SELECT SalesPerson, [Oranges] AS Oranges, [Pickles] AS Pickles
FROM
(SELECT SalesPerson, Product, SalesAmount
FROM ProductSales ) ps
PIVOT
(
SUM (SalesAmount)
FOR Product IN
( [Oranges], [Pickles])
) AS pvt

编辑 3 CodeSlave,查看此 blog entry 以了解有关动态数据透视查询的更多信息。

关于sql - 相当于 MS Access 交叉表查询的 TSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/802630/

10-16 10:19