Ms access 在access 2003中基于未知行向查询添加列

Ms access 在access 2003中基于未知行向查询添加列,ms-access,Ms Access,我在Access 2003中有此查询: col1 col2 col3 col4 111 123 001 12.5 111 123 002 12.5 111 123 003 12.5 111 123 004 12.5 --------------------- 112 211 001 5.2 112 211 002 5.2 112 211 003 5.2 我想做的是在列中移动以col3开头的行,并对重复的行进行素数运算,我的意思是我希望最后有这样的

我在Access 2003中有此查询:

col1 col2 col3 col4 
111  123  001  12.5 
111  123  002  12.5 
111  123  003  12.5
111  123  004  12.5
---------------------
112  211  001  5.2
112  211  002  5.2
112  211  003  5.2
我想做的是在列中移动以col3开头的行,并对重复的行进行素数运算,我的意思是我希望最后有这样的结果:

col1 col2 new_col3 new_col4 new_col5......(unknown # of columns)
111  123  001      002      003       004   005.................. 12.5 
 (here I don't want a sum like in the crosstab query).
我尝试了很多方法,但什么都没有得到。求你了,我真的需要你的帮助。
提前谢谢。

不清楚在新列和行的交叉处需要什么。使用您提供的少量示例输出,我们假设您需要col3/col4值本身。要交叉显示多个列,需要使用多个查询

Query1:
TRANSFORM Min(T1.col3) AS MinOfcol3
SELECT T1.col1, T1.col2
FROM Table1 AS T1
GROUP BY T1.col1, T1.col2
PIVOT T1.col3;

Query2:
TRANSFORM Min(Table1.col4) AS MinOfcol4
SELECT Table1.col1, Table1.col2
FROM Table1
GROUP BY Table1.col1, Table1.col2
PIVOT Table1.col4;

Query3:
SELECT Query1.*, Query2.*
FROM Query1 
    INNER JOIN Query2 
        ON (Query1.col2 = Query2.col2) 
            AND (Query1.col1 = Query2.col1);
如果col3和col4中的值已知,则另一种方法是:

Select col1, col2
    , Min( IIF( col3 = '001', col3, NULL ) ) As col3_001
    , Min( IIF( col3 = '002', col3, NULL ) ) As col3_002
    , Min( IIF( col3 = '003', col3, NULL ) ) As col3_003
    , Min( IIF( col3 = '004', col3, NULL ) ) As col3_004
    , Min( IIF( col4 = 12.5, col4, NULL ) ) As col4_12_5
    , Min( IIF( col4 = 5.2, col4, NULL ) ) As col4_5_2
From Table1
Group By col1, col2

现在有了这些,我们真的应该问一下,你到底为什么要这么做。为什么不返回多行并以这种方式处理信息?

在这些新列和分组行的交叉处应该显示什么?col4之和?计数?如果您能向我们展示您对样本输入的期望值,这会有所帮助。