加入两个查询后缺少值
Missing value after join two query
我有疑问:
select
coalesce(t1.L1, t4.L2) as L1,
coalesce(t1.L2, t4.L2) as L2,
coalesce(t1.S, t4.S) as S,
coalesce(t1.Q, t4.Q) as Q,
coalesce(t1.Value, 0) as Value,
coalesce(t4.Prev_Value, 0) as Prev_Value
from (
select L1, L2, S, Q, sum(value) as Value
from table1
group by L1, L2, S, Q
) as t1
left join
(
select L1, L2, S, Q, sum(value) as Prev_Value
from table1
group by L1, L2, S, Q
) as t4 on
t1.L1 = t4.L1 and
t1.L2 = t4.L2 and
t1.Q = cast((cast(left(t4.Q,4) as numeric) +1) as varchar)+right(t4.Q,2) and
t1.S = t4.S
我现在得到结果:
我知道在 2015 财年第一季度我没有值 C(对于 S1 列)。
但是如何显示缺失值呢?
完全外部连接的结果:
使用 FULL OUTER JOIN,但包含一个 WHERE 子句,用于消除 t4 table 中您不想看到的行。
也改
t1.Q = cast((cast(left(t4.Q,4) as numeric) +1) as varchar)+right(t4.Q,2)
到
t1.Q = 'FY'+cast((cast(substring(t4.Q,3,6) as numeric) +1) as varchar)+right(t4.Q,2)
我有疑问:
select
coalesce(t1.L1, t4.L2) as L1,
coalesce(t1.L2, t4.L2) as L2,
coalesce(t1.S, t4.S) as S,
coalesce(t1.Q, t4.Q) as Q,
coalesce(t1.Value, 0) as Value,
coalesce(t4.Prev_Value, 0) as Prev_Value
from (
select L1, L2, S, Q, sum(value) as Value
from table1
group by L1, L2, S, Q
) as t1
left join
(
select L1, L2, S, Q, sum(value) as Prev_Value
from table1
group by L1, L2, S, Q
) as t4 on
t1.L1 = t4.L1 and
t1.L2 = t4.L2 and
t1.Q = cast((cast(left(t4.Q,4) as numeric) +1) as varchar)+right(t4.Q,2) and
t1.S = t4.S
我现在得到结果:
我知道在 2015 财年第一季度我没有值 C(对于 S1 列)。
但是如何显示缺失值呢?
完全外部连接的结果:
使用 FULL OUTER JOIN,但包含一个 WHERE 子句,用于消除 t4 table 中您不想看到的行。
也改
t1.Q = cast((cast(left(t4.Q,4) as numeric) +1) as varchar)+right(t4.Q,2)
到
t1.Q = 'FY'+cast((cast(substring(t4.Q,3,6) as numeric) +1) as varchar)+right(t4.Q,2)