Sql 如何将联合查询结果正确分组?
我有以下代码:Sql 如何将联合查询结果正确分组?,sql,group-by,union,Sql,Group By,Union,我有以下代码: SELECT tenant.scode ,tenant.sunitcode ,rtrim(tenant.sLastName) + ', ' + (tenant.sFirstName) ,charge.total ,tenant.istatus ,tenant.dtmovein FROM tenant LEFT OUTER JOIN ( SELECT sum(CASE WHEN trans.itype = 6 THEN s
SELECT tenant.scode
,tenant.sunitcode
,rtrim(tenant.sLastName) + ', ' + (tenant.sFirstName)
,charge.total
,tenant.istatus
,tenant.dtmovein
FROM tenant
LEFT OUTER JOIN (
SELECT sum(CASE
WHEN trans.itype = 6
THEN stotalamount * - 1
ELSE CASE
WHEN trans.itype = 3
THEN stotalamount * - 1
ELSE stotalamount
END
END) total
,hperson
FROM trans
where trans.itype in (6,7)
GROUP BY hperson
) charge ON tenant.hmyperson = charge.hperson
WHERE charge.total IS NOT NULL
AND charge.total <> 0
AND tenant.istatus IN (
0
,3
,4
)
and hproperty = 2396
UNION ALL
SELECT tenant.scode
,tenant.sunitcode
,rtrim(tenant.sLastName) + ', ' + (tenant.sFirstName)
,charge.total
,tenant.istatus
,tenant.dtmovein
FROM tenant
LEFT OUTER JOIN tenant t2 on (tenant.sleasefield36 = t2.scode)
LEFT OUTER JOIN (
SELECT sum(CASE
WHEN trans.itype = 6
THEN stotalamount * - 1
ELSE CASE
WHEN trans.itype = 3
THEN stotalamount * - 1
ELSE stotalamount
END
END) total
,hperson
FROM trans
where itype in (6,7)
GROUP BY hperson
) charge ON t2.hmyperson = charge.hperson
WHERE charge.total IS NOT NULL
AND charge.total <> 0
AND tenant.istatus IN (
0
,3
,4
)
and tenant.hproperty = 2396
ORDER BY total
它从某一房产中收回所有拖欠租金和其他款项以及欠款的租户
我的问题是,其中一处房产最近已售出,因此现在我需要从以前的房产中检索其旧余额,并将其添加到新房产的余额中。我基本上已经正确地运行了,但是两个值1来自旧属性,1来自新属性,在我的结果中显示为两个单独的行。第一个余额金额从第一个查询中检索,第二个余额金额从UNION ALL之后的查询中检索
如何使每个租户的这两行合并余额金额,以便每个租户有一个结果行
提前谢谢!:如果我能提供更多详细信息,请告诉我。快速、无脑的回答说明您必须给出最后一个、第一个连接的名称,如名称:
SELECT
scode,
sunitcode,
name,
SUM(total),
istatus,
dtmovein
FROM (
<your first query>
UNION ALL
<your second query>
) AS all_data
GROUP BY
scode,
sunitcode,
name,
istatus,
dtmovein
快速、无脑的回答说明您必须给出最后、第一个连接的名称,如名称:
SELECT
scode,
sunitcode,
name,
SUM(total),
istatus,
dtmovein
FROM (
<your first query>
UNION ALL
<your second query>
) AS all_data
GROUP BY
scode,
sunitcode,
name,
istatus,
dtmovein
加入查询而不是联合查询?有没有可能详细说明?我已经为此工作了好几天了,我相信我已经试过了。我执行的将租户表连接到自身的连接会把这搞砸,除非我使用union。。。至少我是这么想的。或者还有其他解决方案吗?加入查询而不是联合查询?有没有可能详细说明?我已经为此工作了好几天了,我相信我已经试过了。我执行的将租户表连接到自身的连接会把这搞砸,除非我使用union。。。至少我是这么想的。或者还有其他解决方案吗?谢谢!工作得很好非常感谢。工作得很好