3つの異なるクエリの結果を合計する必要があります。ここに私がやっていることはありますが、結果は間違っています。私は別々にそれぞれのクエリを実行する場合、彼らは正常ですが、それらを一緒に実行すると、私は別の結果を得る。サブクエリで異なるクエリの結果を合計
select 'Inforce TIV',
ISNULL(SUM(a.TSI), 0)
+
ISNULL(SUM(b.TSI), 0)
+
ISNULL(SUM(c.TSI), 0)
from
(
select ISNULL(SUM(p.[Suma Asegurada Inforce]), 0) as TSI
from temp_portafolio_cy p
--where p.fec_emi between @varFechaDesde and @varFechaHasta
where p.fec_emi between '20160101' and '20160131'
and p.sn_bancaseguros = 0
group by p.cod_suc, p.cod_ramo_comercial, p.Poliza, p.Item
) a,
(
select ISNULL(p.[Suma Asegurada Inforce], 0) as TSI
from temp_portafolio_cy p
--where p.fec_emi between @varFechaDesde and @varFechaHasta
where p.fec_emi between '20160101' and '20160131'
and p.sn_bancaseguros = -1
and not (
(p.cod_suc = 1 and p.cod_ramo_comercial = 34 and p.Poliza = 51385)
or (p.cod_suc = 1 and p.cod_ramo_comercial = 26 and p.Poliza = 53231)
)
group by p.cod_suc, p.cod_ramo_comercial, p.Poliza, p.Item, p.[Suma Asegurada Inforce]
) b,
(
select ISNULL(p.[Suma Asegurada], 0) as TSI
from temp_portafolio_cy p
--where p.fec_emi between @varFechaDesde and @varFechaHasta
where p.fec_emi between '20160101' and '20160131'
and p.sn_bancaseguros = -1
and (
(p.cod_suc = 1 and p.cod_ramo_comercial = 34 and p.Poliza = 51385)
or (p.cod_suc = 1 and p.cod_ramo_comercial = 26 and p.Poliza = 53231)
)
group by p.cod_suc, p.cod_ramo_comercial, p.Poliza, p.Item, p.[Suma Asegurada]
) c
単純なルール:* * 'JOINの中にカンマを使用しないでください'句。 *常に*明示的な 'JOIN'構文を使用します。 –
私は内部結合を行う方法がわかりません(同じテーブルを考えると)。クエリに基づいて例を書くことができますか? –