表 a
id 公司 出库数 时间
1 A 5 3-8
2 A 5 3-7
3 A 5 3-7表 b
id 公司 入库数 时间
1 A 5 3-8
1 A 10 3-8要查询结果是
公司 入库数 出库数 时间
A 15 5 3-8
A 0 10 3-7
收藏0 邀请 .
id 公司 出库数 时间
1 A 5 3-8
2 A 5 3-7
3 A 5 3-7表 b
id 公司 入库数 时间
1 A 5 3-8
1 A 10 3-8要查询结果是
公司 入库数 出库数 时间
A 15 5 3-8
A 0 10 3-7
收藏0 邀请 .
出库表 入库表
id 公司 是否出库 时间 id 公 司 是否入库 时间
1 A 1 3-8 1 A 1 3-8
2 A 1 3-7 2 A 1 3-8
3 A 1 3-7
要查询结果是
公司 入库数 出库数 时间
A 2 1 3-8
A 0 2 3-7
insert into 出库 values(1,'A','2012-3-8',1);
insert into 出库 values(2,'A','2012-3-8',1);
insert into 出库 values(3,'A','2012-3-8',1);
insert into 出库 values(4'A','2012-3-8',1);
insert into 出库 values(5,'A','2012-3-7',1);
insert into 出库 values(6,'A','2012-3-7',1);create table 入库 (id number(2),公司 varchar2(2), 时间 date ,是否入库 (1入库,0未入)char(1));
insert into 入库 values(1,'A','2012-3-8',1);
insert into 入库 values(2,'A','2012-3-8',1);
insert into 入库 values(3,'A','2012-3-8',1);
insert into 入库 values(4,'A','2012-3-8',1);实现查询的数据是
出入表
时间 公司 出库数 入库数
2012-3-8 A 4 4
2012-3-7 A 2 0表结构大概是这样
select a.公司 ,nvl(sum(b.入库数),0) 入库数,nvl(sum(a.出库数),0) 出库数,t1.时间
from
(select 时间 from a
union
select 时间 from b) t1
left join
a on t1.时间=a.时间
left join
b on t1.时间=b.时间
where a.公司=b.公司
group by a.公司,t1.时间
order by a.公司,t1.时间 desc
create table 出库(id number(2),公司 nvarchar2(20),时间 date,是否出库 number);
insert into 出库 values(1,'A',date'2012-03-08',1);
insert into 出库 values(2,'A',date'2012-03-08',1);
insert into 出库 values(3,'A',date'2012-03-08',1);
insert into 出库 values(4,'A',date'2012-03-08',1);
insert into 出库 values(5,'A',date'2012-03-07',1);
insert into 出库 values(6,'A',date'2012-03-07',1);
create table 入库 (id number(2),公司 nvarchar2(20), 时间 date ,是否入库 number);
insert into 入库 values(1,'A',date'2012-03-08',1);
insert into 入库 values(2,'A',date'2012-03-08',1);
insert into 入库 values(3,'A',date'2012-03-08',1);
insert into 入库 values(4,'A',date'2012-03-08',1);
select distinct a.时间,a.公司,sum(a.是否出库) 出库数,sum(a.是否入库) 入库数
from
(select 时间,公司,是否出库,0 是否入库 from 出库
union all
select 时间,公司,0,是否入库 from 入库 ) a
group by a.时间,a.公司
order by a.时间 desc
时间 公司 出库数 入库数
--------------------------------------------
1 2012/3/8 A 4 4
2 2012/3/7 A 2 0
select 公司,
sum(入库数),
sum(出库数),
时间
from (
select a.公司 as 公司,
0 as 入库数,
decode (a.是否出库, '1', 1, 0)
as 出库数,
a.时间 as 时间
from a
union all
select b.公司 as 公司,
decode (b.是否入库, '1', 1, 0)
as 入库数,
0 as 出库数,
b.时间 as 时间
from b
)
group by 公司,时间
order by 公司,时间