私はこのコードを持っています:
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 つが最近売却されたため、以前の物件から古い残高を取得し、それを新しい物件の残高に追加する必要があることです。基本的にこれは正しく機能していますが、2 つの金額 (古いプロパティから 1 つと新しいプロパティから 1 つ) が 2 つの別々の行として結果に表示されます。最初の残高は最初のクエリから取得され、2 番目は UNION ALL の後のクエリから取得されます。
テナントごとにこれらの 2 つの行を作成して、残高の金額を結合し、テナントごとに 1 つの結果行を作成するにはどうすればよいですか?
前もって感謝します!:) 詳細を提供できるかどうか教えてください