【发布时间】:2018-12-21 07:16:29
【问题描述】:
我在联合查询中返回 group by 表达式中的相同行时遇到问题。我目前拥有的 SQL 返回以下结果 Current results 我想在 2 个表中显示相同数量的行,所以即使数量为零,我也需要返回一行。 Proposed results.
我的 SQL 目前看起来像这样
SELECT
'A' AS Code,
'Internal Equipment' AS Description,
'Project A' AS Project,
Revision,
'ME' AS Customer,
Discipline,
SUM(Amount)
FROM
Table B
WHERE
(
Project = @Project
)
AND (
Revision = @Revision
)
AND Amount > 0
AND RoleCode NOT LIKE 'AAA%'
GROUP BY
Project,
Revision,
Customer,
Discipline
UNION ALL
SELECT
'B' AS Code,
'External Equipment' AS Description,
'Project A' AS Project,
Revision,
'ME' AS Customer,
Discipline,
SUM(Amount)
FROM
Table B
WHERE
(
Project = @Project
)
AND (
Revision = @Revision
)
AND Amount > 0
AND RoleCode LIKE 'AAA%'
GROUP BY
Project,
Revision,
Customer,
Discipline
UNION ALL
SELECT
'C' AS Code,
'Labour' AS Description,
'Project A' AS Project,
Revision,
'ME' AS Customer,
Discipline,
SUM(Amount)
FROM
Table A
WHERE
(
Project = @Project
)
AND (
Revision = @Revision
)
GROUP BY
Project,
Revision,
Customer,
Discipline
UNION ALL
SELECT
'D' AS Code,
'Travel & Accomodation' AS Description,
'Project A' AS Project,
Revision,
'ME' AS Customer,
Discipline,
SUM(Amount).
FROM
Table B
WHERE
(
Project = @Project
)
AND (
Revision = @Revision
)
AND Amount > 0
AND RoleCode IN('BBB', 'CCC', 'DDD')
GROUP BY
Project,
Revision,
Customer,
Discipline
有人可以帮忙吗。
谢谢。
【问题讨论】:
-
谢谢LoztInSpace,这已经解决了问题。顺便说一下,这是一个 SQL Server 数据库
标签: sql