有个SQL语句想请教OrderNo OrderDate WareNo WareName Spec InQuantity OutQuantity001 2005-12-1 F01 光驱 52X 10002 2005-12-5 F01 光驱 52X 2003 2005-12-9 F01 光驱 52X 4我要得到如下结果OrderNo OrderDate WareNo WareName Spec InQuantity OutQuantity LibQuantity001 2005-12-1 F01 光驱 52X 10 10002 2005-12-5 F01 光驱 52X 2 8003 2005-12-9 F01 光驱 52X 4 12
其中,LibQuantity = InQuantity - OutQuantity
the key is;
select OrderNo,OrderDate,WareNo,WareName,Spec,InQuantity,OutQuantity,(select sum(b.InQuantity)-sum(b.OutQuantity) from 表 as b where b.OrderDate<=a.OrderDate and a.WareNo=b.WareNo) as LibQuantityfrom 表 as a
create database backup to one disk or pathcreate pro myBack@databasename varchar(20)declare @sqlstr varchar(100)set sqlstr=' backup database '+@databasename+' to disk= ' 'C:/path' ' '
exec(@sqlstr)
go
我现在有两个表,A和B根据A中的字段WW跟B中的字段XX关联但是现在有条件就是,当WW字段是以PO打头时,比如PO0504123,则要在PO0504123前加“MI-”,即成为“MI-PO0504123”,再与B中的XX字段关联;而当WW字段是其他内容时,就直接跟XX关联。我的语句是这样的:select * from a left outer join b on (case when left(a.ww,2)='po' then ('MI-'+a.ww) else a.ww else)=b.xx也试过这样:select * from a left outer join b on (case when left(a.ww,2)='po' then ('MI-'+a.ww)=b.xx else a.ww else=b.xx)都是报错,是不是这样不能用CASE?那我该怎么写,请各位指点。小弟在线等。谢谢PS:我也用过函数,但是速度很慢,很久都没找出数据,是不是我没写好函数呢:)
the key is:
select * from(select *,case when left(a.ww,2)='po' then ('MI-'+a.ww) else a.ww end as new_ww from A) A left join B on A.new_ww=B.xx和select * from a left outer join b on (case when left(a.ww,2)='po' then ('MI-'+a.ww) else a.ww end)=b.xx我都测试正常呀?是不是语法或者是字段名写错了?
exec(@sqlstr)
go
我现在有两个表,A和B根据A中的字段WW跟B中的字段XX关联但是现在有条件就是,当WW字段是以PO打头时,比如PO0504123,则要在PO0504123前加“MI-”,即成为“MI-PO0504123”,再与B中的XX字段关联;而当WW字段是其他内容时,就直接跟XX关联。我的语句是这样的:select * from a left outer join b on (case when left(a.ww,2)='po' then ('MI-'+a.ww) else a.ww else)=b.xx也试过这样:select * from a left outer join b on (case when left(a.ww,2)='po' then ('MI-'+a.ww)=b.xx else a.ww else=b.xx)都是报错,是不是这样不能用CASE?那我该怎么写,请各位指点。小弟在线等。谢谢PS:我也用过函数,但是速度很慢,很久都没找出数据,是不是我没写好函数呢:)
the key is:
select * from(select *,case when left(a.ww,2)='po' then ('MI-'+a.ww) else a.ww end as new_ww from A) A left join B on A.new_ww=B.xx和select * from a left outer join b on (case when left(a.ww,2)='po' then ('MI-'+a.ww) else a.ww end)=b.xx我都测试正常呀?是不是语法或者是字段名写错了?
exec(@sqlstr)
go