Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Access SQL中求一个组(即使不在该组中)的所有值之和?_Sql_Ms Access - Fatal编程技术网

如何在Access SQL中求一个组(即使不在该组中)的所有值之和?

如何在Access SQL中求一个组(即使不在该组中)的所有值之和?,sql,ms-access,Sql,Ms Access,我有一张这样的桌子: MUN | TYPE | LENGTH -----|-------|-------- 001 | A | 5 001 | A | 2 002 | A | 3 002 | C | 8 003 | B | 6 MUN | TYPE | LENGTH -----|-------|-------- 001 | A | 7 001 | B | 0 001 | C | 0 002 | A

我有一张这样的桌子:

MUN  | TYPE  | LENGTH
-----|-------|--------
001  | A     | 5
001  | A     | 2
002  | A     | 3
002  | C     | 8
003  | B     | 6
MUN  | TYPE  | LENGTH
-----|-------|--------
001  | A     | 7
001  | B     | 0
001  | C     | 0
002  | A     | 3
002  | B     | 0
002  | C     | 8
003  | A     | 0
003  | B     | 6
003  | C     | 0
SELECT DISTINCT
    A.MUN,
    A.TYPE
    SUM(A.LENGTH)
FROM
    MY_TABLE AS A
    LEFT JOIN (SELECT DISTINCT TYPE FROM MY_TABLE) AS B ON A.TYPE = B,TYPE
GROUP BY
    A.MUN, A.TYPE
我想为每个门展示所有类型及其长度,如下所示:

MUN  | TYPE  | LENGTH
-----|-------|--------
001  | A     | 5
001  | A     | 2
002  | A     | 3
002  | C     | 8
003  | B     | 6
MUN  | TYPE  | LENGTH
-----|-------|--------
001  | A     | 7
001  | B     | 0
001  | C     | 0
002  | A     | 3
002  | B     | 0
002  | C     | 8
003  | A     | 0
003  | B     | 6
003  | C     | 0
SELECT DISTINCT
    A.MUN,
    A.TYPE
    SUM(A.LENGTH)
FROM
    MY_TABLE AS A
    LEFT JOIN (SELECT DISTINCT TYPE FROM MY_TABLE) AS B ON A.TYPE = B,TYPE
GROUP BY
    A.MUN, A.TYPE
请注意,例如,MUN 001没有类型B和C,但它们的长度应为0

我试过这样的方法:

MUN  | TYPE  | LENGTH
-----|-------|--------
001  | A     | 5
001  | A     | 2
002  | A     | 3
002  | C     | 8
003  | B     | 6
MUN  | TYPE  | LENGTH
-----|-------|--------
001  | A     | 7
001  | B     | 0
001  | C     | 0
002  | A     | 3
002  | B     | 0
002  | C     | 8
003  | A     | 0
003  | B     | 6
003  | C     | 0
SELECT DISTINCT
    A.MUN,
    A.TYPE
    SUM(A.LENGTH)
FROM
    MY_TABLE AS A
    LEFT JOIN (SELECT DISTINCT TYPE FROM MY_TABLE) AS B ON A.TYPE = B,TYPE
GROUP BY
    A.MUN, A.TYPE
但应该更像一个完整的连接?我试着把左连接和右连接结合起来,但运气不好


从一开始,我就觉得这个查询有点胡说八道,我想不出任何其他方法来实现这一点。

最后,我设法提出了一个丑陋的查询来完成这项工作。这是对每种类型的查询的并集,在我的例子中,只有少数类型,这是可以的,但是对于成百上千的类型,这不是一个有效的答案,所以这不会被接受

这里是“杰作”:


如果需要求和值,为什么要使用
COUNT(A.LENGTH)
?为什么Mun 001的第二个实例的类型A的长度为0?对不起,这里有错误。我得赶紧把问题发出去。