Ms access 在access 2003中基于未知行向查询添加列
我在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开头的行,并对重复的行进行素数运算,我的意思是我希望最后有这样的
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之和?计数?如果您能向我们展示您对样本输入的期望值,这会有所帮助。