【发布时间】:2018-03-25 06:42:15
【问题描述】:
我目前正在学习如何在查询中使用MySQL,但我遇到了难题。
目前,我有 2 个查询从多个表中获取数据。两个查询包含相同数量的列字段和字段名称。
为简单起见,查询的输出如下所示:
查询一:
FieldOne| FieldTwo | FieldThree | CountOne | CountTwo | CountThree
data1 | data11 | data111 | 3 | 0 | 0
data2 | data22 | data222 | 0 | 1 | 0
data3 | data33 | data333 | 0 | 0 | 2
data4 | data44 | data444 | 0 | 4 | 0
data5 | data55 | data444 | 0 | 0 | 1
查询二:
FieldOne| FieldTwo | FieldThree | CountOne | CountTwo | CountThree
data1 | data11 | data111 | 1 | 0 | 0
data1 | data11 | data111 | 0 | 0 | 2
data6 | data66 | data666 | 0 | 5 | 0
两个查询包含相同的 FieldOne-FieldThree 数据,但可能包含不同的 CountOne-CountThree 值。
永远不会出现数据将包含所有 3 个字段 CountOne, CountTwo, CountThree 中的值的情况,而只会在这 3 个字段中的 一个 中包含值。
我要做的是创建一个单独的UNION QUERY,它具有以下输出:
FieldOne| FieldTwo | FieldThree | CountOne | CountTwo | CountThree
data1 | data11 | data111 | 4 | 0 | 0
data1 | data11 | data111 | 0 | 0 | 2
data2 | data22 | data222 | 0 | 1 | 0
data3 | data33 | data333 | 0 | 0 | 2
data4 | data44 | data444 | 0 | 4 | 0
data5 | data55 | data444 | 0 | 0 | 1
data6 | data66 | data666 | 0 | 5 | 0
基本上,如果FieldOne 中有多个相同数据的实例,并且相同数据的多个实例在相同的CountOne、CountTwo 或CountThree 中有一个值,我'想要获得该字段的 SUM 并将该数据按FieldOne 分组。
但是,如果有多个相同数据的实例,但它在不同的Count 字段中包含一个值,则查询应为其创建单独的记录,如示例中的data1 包含CountOne 和 CountTwo 字段中的值。
我在 Access 2013 的 SQL View 中使用 UNION QUERY 做了类似的事情:
SELECT *
FROM [QueryOne]
ORDER BY FieldOne
UNION SELECT *
FROM [QueryTwo]
ORDER BY FieldTwo;
但是,以我有限的知识,我被困在如何将我想要的内容一次性合并到上述代码中,而不是创建另一个单独的查询。
【问题讨论】:
-
我想您还希望输出中的 data2 的值?
-
@Nick 是的,错过了那个...问题已更新
-
Access 似乎是一个学习 MySQL 的陌生环境
标签: mysql ms-access-2013