select A.代码,A.名称,A.类别ID,B.库存量,B.缺少数量 from 配件 A,
(select C.代码,
(case when D.数量 is null then 0 when not D.数量 is null then D.数量 end)as 库存量,
(case when (C.数量-D.数量) is null then C.数量 when not (C.数量-D.数量) is null then C.数量-D.数量 end) as 缺少数量
from temp2 C left join 库存 D on C.代码=D.代码 where C.数量>D.数量 or (not exists(select * from 库存 where C.代码=D.代码))) B
where A.代码=B.代码上面语句在SQL SERVER下能运行,但我用VB的ADO2.6就运行出错。能否改成在ADO2.6下也能运行?只要得出相同的结果就行了,效率并不在乎。
(select C.代码,
(case when D.数量 is null then 0 when not D.数量 is null then D.数量 end)as 库存量,
(case when (C.数量-D.数量) is null then C.数量 when not (C.数量-D.数量) is null then C.数量-D.数量 end) as 缺少数量
from temp2 C left join 库存 D on C.代码=D.代码 where C.数量>D.数量 or (not exists(select * from 库存 where C.代码=D.代码))) B
where A.代码=B.代码上面语句在SQL SERVER下能运行,但我用VB的ADO2.6就运行出错。能否改成在ADO2.6下也能运行?只要得出相同的结果就行了,效率并不在乎。
(select c.代码,iif(d.数量 is null ,0,d.数量) as 库存量,
iif((c.数量 - d.数量) is null,c.数量,(c.数量 - d.数量)) as 缺少数量
from temp2 C left join 库存 D
on C.代码=D.代码
where C.数量>D.数量 or
(not exists(select * from 库存 where C.代码=D.代码))) B
where A.代码=B.代码
检查语句有没有写错的地方
通过后
可以放到vb中使用
我上面的语句sql server下是可以正确运行的,但不知是不是ado2.6 不支持case when 还是什么,就是不行。
对象 'open' 的方法 '_Recordset'失败
(select C.代码,
(case when isnull(D.数量) then 0 else D.数量 end)as 库存量,
select A.代码,A.名称,A.类别ID,B.库存量,B.缺少数量 from 配件 A,(select C.代码,D.数量 as 库存量,C.数量-D.数量 as 缺少数量 from temp2 C left join 库存 D on C.代码=D.代码 where C.数量>D.数量 union select C.代码,0 as 库存量,C.数量 as 缺少数量 from temp2 C left join 库存 D on C.代码=D.代码 where not exists(select * from 库存 where C.代码=D.代码)) as B where A.代码=B.代码