次のように現在、私は、クエリをしました:条件・ユニオンT-SQLで
-- Query 1
SELECT
acc_code, acc_name, alias, LAmt, coalesce(LAmt,0) AS amt
FROM
(SELECT
acc_code, acc_name, alias,
(SELECT
(SUM(cr_amt)-SUM(dr_amt))
FROM
ledger_mcg l
WHERE
(l.acc_code LIKE a.acc_code + '.%' OR l.acc_code=a.acc_code)
AND
fy_id=1
AND
posted_date BETWEEN '2010-01-01' AND '2011-06-02') AS LAmt
FROM
acc_head_mcg AS a
WHERE
(acc_type='4')) AS T1
WHERE
coalesce(LAmt,0)<>0
クエリ2 2.クエリ2は、常に単一の行でResultSetを返すクエリでそのacc_type = '5'
を除き、クエリ1と同じです。今、私は2つのクエリの労働組合を必要とするクエリ2で返さAMTはそうで0未満である場合にのみ、
Query 1
UNION
Query 2
、すなわち、私は労働組合を必要としますが、クエリ1.
からのみresulsetはありません私が考えることができる最良の方法は、パラメータ化されたスカラ関数を作成することです。どのように私はこれを行うことができます最高の?
「合体(LAmt、0)AS amt」列は、「合体(LAmt、0)<0>」条件のために冗長であるように見えます。 –