将字段为空的Access SQL中的行组合在一起

时间:2015-11-30 16:51:14

标签: sql ms-access group-by union

我一直在寻找将多行信息组合成一行来填充空白区域。

Id | name | value1 | value2 | value3
1    bob      3                                                              
1    bob                        6
1    bob               B

如何将这3行放入一行?已经确认它们将完全适合空白值,没有值会重叠。

Id | name | value1 | value2 | value3
1    bob      3        B        6

除了一些名为ConcatRelated的东西,我在研究中没有多少用处,我无法根据自己的需要进行修改。我也尝试过一组我无法开展工作的声明。有任何想法吗?我一般都是Access和SQL的新手。

1 个答案:

答案 0 :(得分:0)

  

如何将这3行放入一行?

使用GROUP BY查询将3 “bob”行合并为一行。然后,您可以包含一个聚合函数,例如Max(),以检索每个 valueX 列的非空行。

SELECT
    y.Id,
    y.name,
    Max(y.value1) AS MaxOfvalue1,
    Max(y.value2) AS MaxOfvalue2,
    Max(y.value3) AS MaxOfvalue3
FROM YourTable AS y
GROUP BY
    y.Id,
    y.name;

如果要重用原始列名 valueX ,而不是 MaxOfvalueX 别名,请将该名称括在方括号中......

Max(y.value1) AS [value1]