我一直在寻找将多行信息组合成一行来填充空白区域。
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的新手。
答案 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]