0

我有表项目

ID | NAME
---------
1  | A
2  | B
3  | C
4  | D
5  | E
6  | F

If I Enter : 2 我希望桌子是这样的

ID | NAME_1 | NAME_2
--------------------
1  | A      | B
2  | C      | D
3  | E      | F

If I Enter : 3 我希望桌子是这样的

ID | NAME_1 | NAME_2 | NAME_3
-----------------------------
1  | A      | B      | C
2  | D      | E      |

实现这一目标的查询是什么?(我的数据库是 Ms-Access)

4

1 回答 1

1

首先,创建一个查询QParts来构建字段名称:

PARAMETERS 
    P Short;
SELECT 
    ([ID] - 1) \ [P] + 1 AS NewID, 
    "NAME_" & CStr(([ID] - 1) Mod [P] + 1) AS FieldName, 
    Itemx.NAME AS [Value]
FROM 
    Item;

然后创建一个交叉表查询:

PARAMETERS 
    P Short;
TRANSFORM 
    First(QParts.Value) AS NewValue
SELECT 
    QParts.NewID
FROM 
    QParts
GROUP BY 
    QParts.NewID
PIVOT 
    QParts.FieldName;

输出,P = 2:

在此处输入图像描述

输出,P = 3:

在此处输入图像描述

于 2021-04-21T13:04:25.447 回答