首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一SQL语句!多谢!分不多

2012-03-06 
求一SQL语句!谢谢!分不多!表t1.申请出口的产品合同编号,产品编号,产品版本,产品数量pactnopdtnumbereditio

求一SQL语句!谢谢!分不多!
表t1.申请出口的产品
    合同编号,产品编号,产品版本,产品数量
      pactno     pdtnumber   edition       mark1
        k2007         p1               v1                   5000
        b2007         p1               v2                   3000
        c2007         p2               v1                   8000
表t2   .已经出口的产品
    pactno       pdtnumber     edition       mark2
        k2007         p1                     v1               2500
        b2007         p1                     v2               500
注:合同编号,产品编号,产品版本,组成唯一的一行数据
求:剩下还没出口的产品
      pactno     pdtnumber   edition       mark1
        k2007         p1                 v1               2500
        b2007         p1                 v2               2500
        c2007         p2                 v1               8000
谢谢

[解决办法]
select A.pactno,A.,A.pdtnumber,A.edition,A.mark1-isnull(B.mark2)
from t1 A left join t2 B
on A.pactno=B.pactno and A.pdtnumber=B.pdtnumber and A.edition=B.edition
[解决办法]
--修正
select A.pactno,A.pdtnumber,A.edition,A.mark1-isnull(B.mark2,0)
from t1 A left join t2 B
on A.pactno=B.pactno and A.pdtnumber=B.pdtnumber and A.edition=B.edition
--或者
select pactno,pdtnumber,edition,sum(mark1) from
(select * from t1 union all select pactno,pdtnumber,edition,-mark2 from t2)A
group by pactno,pdtnumber,edition
[解决办法]
select t1.pactno , t1.pdtnumber t1.edition , t1.mark1 from t1 where t1.pactno not in(select pactno from t2) and t1.pdtnumber not in(select pdtnumber from t2) and t1.edition not in(select edition from t2)
自己试试,我没有具体测试。有兴趣的加我的QQ群32097372。大家一起学习交流哦
[解决办法]
select pactno,pdtnumber,edition,mark1
from t1
where pactno not in
(select pactno
from t2)
[解决办法]
if object_id( 'pubs..t1 ') is not null
drop table t1
go

create table t1(合同编号 varchar(10),产品编号 varchar(10),产品版本 varchar(10),产品数量 int)
insert into t1(合同编号,产品编号,产品版本,产品数量) values( 'k2007 ', 'p1 ', 'v1 ',5000)
insert into t1(合同编号,产品编号,产品版本,产品数量) values( 'b2007 ', 'p1 ', 'v2 ',3000)
insert into t1(合同编号,产品编号,产品版本,产品数量) values( 'c2007 ', 'p2 ', 'v1 ',8000)


go

if object_id( 'pubs..t2 ') is not null
drop table t2
go

create table t2(合同编号 varchar(10),产品编号 varchar(10),产品版本 varchar(10),产品数量 int)
insert into t2(合同编号,产品编号,产品版本,产品数量) values( 'k2007 ', 'p1 ', 'v1 ',2500)
insert into t2(合同编号,产品编号,产品版本,产品数量) values( 'b2007 ', 'p1 ', 'v2 ',500)
go

select t1.合同编号,t1.产品编号,t1.产品版本,t1.产品数量 - isnull(t2.产品数量,0) 产品数量 from t1
left join t2
on t1.合同编号 = t2.合同编号 and t1.产品编号 = t2.产品编号 and t1.产品版本 = t2.产品版本

drop table t1,t2

/*
合同编号 产品编号 产品版本 产品数量
---------- ---------- ---------- -----------
k2007 p1 v1 2500
b2007 p1 v2 2500
c2007 p2 v1 8000

(所影响的行数为 3 行)
*/

热点排行