a表
日期 人数
1月1日 2
1月2日 4
1月3日 4b表
日期 人数
1月3日 7
1月2日 8
1月9日 4c表
日期 人数
1月9日 1
1月1日 8
1月5日 6可以联结成这样吗?a日期 a人数 b日期 b人数 c日期 c人数
1月1日 2 1月1日 8
1月2日 4 1月2日 8
1月3日 4 1月3日 7
1月5日 6
1月9日 4 1月9日 1
或者这样:日期 a人数 b人数 c人数
1月1日 2 8
1月2日 4 8
1月3日 4 7
1月5日 6
1月9日 4 1问abc三表如何全外连接(oracle8i)?很少来了,本来想给多点分的,可是没什么可用分了,多包涵
日期 人数
1月1日 2
1月2日 4
1月3日 4b表
日期 人数
1月3日 7
1月2日 8
1月9日 4c表
日期 人数
1月9日 1
1月1日 8
1月5日 6可以联结成这样吗?a日期 a人数 b日期 b人数 c日期 c人数
1月1日 2 1月1日 8
1月2日 4 1月2日 8
1月3日 4 1月3日 7
1月5日 6
1月9日 4 1月9日 1
或者这样:日期 a人数 b人数 c人数
1月1日 2 8
1月2日 4 8
1月3日 4 7
1月5日 6
1月9日 4 1问abc三表如何全外连接(oracle8i)?很少来了,本来想给多点分的,可是没什么可用分了,多包涵
CREATE TABLE a表
(
日期 DATETIME,
人数 INT
)
CREATE TABLE b表
(
日期 DATETIME,
人数 INT
)
CREATE TABLE c表
(
日期 DATETIME,
人数 INT
)INSERT INTO a表
SELECT '2000-1-1', 2 UNION ALL
SELECT '2000-1-2', 4 UNION ALL
SELECT '2000-1-3', 4 INSERT INTO b表
SELECT '2000-1-3', 7 UNION ALL
SELECT '2000-1-2', 8 UNION ALL
SELECT '2000-1-9', 4 INSERT INTO c表
SELECT '2000-1-9', 1 UNION ALL
SELECT '2000-1-1', 8 UNION ALL
SELECT '2000-1-5', 6 SELECT 日期 = CASE WHEN a.日期 IS NOT NULL THEN a.日期 ELSE
(CASE WHEN b.日期 IS NOT NULL THEN b.日期 ELSE c.日期 END) END
,a人数 = a.人数, b人数 = b.人数, c人数 = c.人数
FROM a表 a
FULL JOIN b表 b ON a.日期 = b.日期
FULL JOIN c表 c ON a.日期 = c.日期 OR b.日期 = c.日期
ORDER BY 日期
from (
select 日期,人数,'a' 表名
from 表A
union
select 日期,人数,'b' 表名
from 表B
union
select 日期,人数,'c' 表名
from 表C
)
group by 日期这是典型的UNION加GROUP加DECODE,合并分组用法
加分吧