34,590
社区成员
发帖
与我相关
我的任务
分享
create table a(company varchar(10), genre varchar(10), model varchar(10), total int)
insert into a values('NOKIA' , 'IC' , 'A1820' , 500 )
insert into a values('NOKIA' , 'PCB' , 'B1850' , 600 )
insert into a values('NOKIA' , 'IC' , 'A1970' , 300 )
insert into a values('IBM' , 'IC' , 'Z8850' , 100 )
insert into a values('IBM' , 'IC' , 'B5520' , 0 )
insert into a values('IBM' , 'IC' , 'E0055' , 0 )
create table b(Company varchar(10) , planID varchar(10) , praxis int)
insert into b values('NOKIA' , '0812001' , 400 )
insert into b values('IBM' , '0812002' , 300 )
create table c(PlanID varchar(10) , Genre varchar(10) , Model varchar(10) , Total int)
insert into c values('0812001' , 'IC' , 'A1820' , 500 )
insert into c values('0812001' , 'PCB' , 'B1850' , 480 )
insert into c values('0812002' , 'IC' , 'A1970' , 300 )
insert into c values('0812002' , 'IC' , 'Z8850' , 310 )
insert into c values('0812002' , 'IC' , 'E0055' , 320 )
select * from
(
select a.company , a.genre , a.model , a.total , isnull(m.total2 , 0) total2 from a left join
(select b.company , c.Genre , c.Model , c.total , c.total - b.praxis total2 from b , c where b.planID = c.planID) m
on a.company = m.company and a.genre = m.genre and a.model = m.model
) n
where total <> 0 or total2 <> 0
drop table a, b, c
/*
company genre model total total2
---------- ---------- ---------- ----------- -----------
NOKIA IC A1820 500 100
NOKIA PCB B1850 600 80
NOKIA IC A1970 300 0
IBM IC Z8850 100 10
IBM IC E0055 0 20
(所影响的行数为 5 行)
*/
create table a(company varchar(10), genre varchar(10), model varchar(10), total int)
insert into a values('NOKIA' , 'IC' , 'A1820' , 500 )
insert into a values('NOKIA' , 'PCB' , 'B1850' , 600 )
insert into a values('NOKIA' , 'IC' , 'A1970' , 300 )
insert into a values('IBM' , 'IC' , 'Z8850' , 100 )
insert into a values('IBM' , 'IC' , 'B5520' , 0 )
insert into a values('IBM' , 'IC' , 'E0055' , 0 )
create table b(Company varchar(10) , planID varchar(10) , praxis int)
insert into b values('NOKIA' , '0812001' , 400 )
insert into b values('IBM' , '0812002' , 300 )
create table c(PlanID varchar(10) , Genre varchar(10) , Model varchar(10) , Total int)
insert into c values('0812001' , 'IC' , 'A1820' , 500 )
insert into c values('0812001' , 'PCB' , 'B1850' , 480 )
insert into c values('0812002' , 'IC' , 'A1970' , 300 )
insert into c values('0812002' , 'IC' , 'Z8850' , 310 )
insert into c values('0812002' , 'IC' , 'E0055' , 320 )
select b.company , c.Genre , c.Model , c.total , c.total - b.praxis total2 from a , b , c where b.planID = c.planID and b.company = a.company and c.genre = a.genre and c.model = a.model
drop table a, b, c
/*
company Genre Model total total2
---------- ---------- ---------- ----------- -----------
NOKIA IC A1820 500 100
NOKIA PCB B1850 480 80
IBM IC Z8850 310 10
IBM IC E0055 320 20
(所影响的行数为 4 行)
*/
select b.company , c.Genre , c.Model , c.total - b.praxis total2 from a , b , c where b.planID = c.planID and b.company = a.company and c.genre = a.genre and c.model = a.model