DB2中的联合查询
我的问题是:DB2中的联合查询,db2,union,Db2,Union,我的问题是: SELECT BRAND,BRAND_GROUP, SUB_BRAND ,SUM(INCOME) AS TOTAL_INCOME FROM "tema".MMT WHERE BRAND_GROUP IS NULL AND SUB_BRAND IS NULL GROUP BY BRAND,BRAND_GROUP,SUB_BRAND UNION SELECT BRAND,BRAND_GROUP, SUB_BRAND ,SUM(INCOME) AS TOTAL_INCOME FROM
SELECT BRAND,BRAND_GROUP, SUB_BRAND ,SUM(INCOME) AS TOTAL_INCOME FROM
"tema".MMT WHERE BRAND_GROUP IS NULL AND SUB_BRAND IS NULL GROUP BY
BRAND,BRAND_GROUP,SUB_BRAND
UNION
SELECT BRAND,BRAND_GROUP, SUB_BRAND ,SUM(INCOME) AS TOTAL_INCOME FROM
"tema".BGT WHERE BRAND_GROUP IS NULL AND SUB_BRAND IS NULL GROUP BY
BRAND,BRAND_GROUP,SUB_BRAND;
我的输出是:
BRAND BRAND_GROUP SUB_BRAND TOTAL_INCOME
----- ----------- --------- ------------
GBS NULL NULL 10000
SWG NULL NULL 10000
GBS NULL NULL 20000
STG NULL NULL 20000
GTS NULL NULL 30000
问题是我有两类品牌,我只想有一类。像这样:
Brand Brand_Group Sub_brand Total_Income
GBS - - 30000
STG - - 20000
GTS - - 30000
SWG - - 10000
有人能帮我一个主意吗?我想你想把你的
联合
查询下推到一个子查询中,然后对结果求和,如下所示
SELECT
BRAND
,BRAND_GROUP
,SUB_BRAND
,SUM(INCOME) AS TOTAL_INCOME
FROM (
SELECT
BRAND
,BRAND_GROUP
,SUB_BRAND
,INCOME
FROM "tema".MMT
WHERE BRAND_GROUP IS NULL
AND SUB_BRAND IS NULL
GROUP BY
BRAND
,BRAND_GROUP
,SUB_BRAND
UNION ALL
SELECT
BRAND
,BRAND_GROUP
,SUB_BRAND
,INCOME
FROM "tema".BGT
WHERE BRAND_GROUP IS NULL
AND SUB_BRAND IS NULL
GROUP BY
BRAND
,BRAND_GROUP
,SUB_BRAND
) tbl
GROUP BY
BRAND
,BRAND_GROUP
,SUB_BRAND
两点意见:
- 我将您的查询更改为使用
vsUNION ALL
,因为UNION
将消除重复项李>UNION
- 如果您只获取这些列的空行,是否需要选择
和品牌组
?对我来说似乎有些多余子品牌
联合
查询向下推到一个子查询中,然后对其结果进行求和,如下所示
SELECT
BRAND
,BRAND_GROUP
,SUB_BRAND
,SUM(INCOME) AS TOTAL_INCOME
FROM (
SELECT
BRAND
,BRAND_GROUP
,SUB_BRAND
,INCOME
FROM "tema".MMT
WHERE BRAND_GROUP IS NULL
AND SUB_BRAND IS NULL
GROUP BY
BRAND
,BRAND_GROUP
,SUB_BRAND
UNION ALL
SELECT
BRAND
,BRAND_GROUP
,SUB_BRAND
,INCOME
FROM "tema".BGT
WHERE BRAND_GROUP IS NULL
AND SUB_BRAND IS NULL
GROUP BY
BRAND
,BRAND_GROUP
,SUB_BRAND
) tbl
GROUP BY
BRAND
,BRAND_GROUP
,SUB_BRAND
两点意见:
- 我将您的查询更改为使用
vsUNION ALL
,因为UNION
将消除重复项李>UNION
- 如果您只获取这些列的空行,是否需要选择
和品牌组
?对我来说似乎有些多余子品牌