SQL> select * from test1;A B C
------------------------------ ---------- ----------
20050101 A 1
20050101 B 1
20050102 B 1
20050102 C 1SQL> select * from test2;B
--------------------
A
B
C
SQL> select t1.a, t2.b, max(decode(t2.b, t1.b, t1.c, 0)) from zhang.test1 t1, zhang.test2 t2
2 group by t1.a, t2.b;A B MAX(DECODE(T2.B,T1.B,T1.C,0))
------------------------------ -------------------- -----------------------------
20050101 A 1
20050101 B 1
20050101 C 0
20050102 A 0
20050102 B 1
20050102 C 1
------------------------------ ---------- ----------
20050101 A 1
20050101 B 1
20050102 B 1
20050102 C 1SQL> select * from test2;B
--------------------
A
B
C
SQL> select t1.a, t2.b, max(decode(t2.b, t1.b, t1.c, 0)) from zhang.test1 t1, zhang.test2 t2
2 group by t1.a, t2.b;A B MAX(DECODE(T2.B,T1.B,T1.C,0))
------------------------------ -------------------- -----------------------------
20050101 A 1
20050101 B 1
20050101 C 0
20050102 A 0
20050102 B 1
20050102 C 1
把 test1 表替换成 (select count(1),so.order_date,so.organization
from so
group by so.order_date,so.organization)
select t1.so.order_date, t2.b, max(decode(t2.b, t1.so.organization, t1.count(1), 0))
from (select count(1),so.order_date,so.organization
from so
group by so.order_date,so.organization) t1,
test2 t2
group by so.order_date, t2.b