以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  有关SQL,这样的要求如何实现  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24145)

--  作者:baoxyang
--  发布时间:2012/10/4 22:34:00
--  有关SQL,这样的要求如何实现

比如表A,有分配量,虚存量,ID三列。

有两个变量s和g.满足ID等于变量g.

条件1:如果虚存量小于变量s,修改 分配量 - 虚存量,虚存量 = 0.

条件2:如果虚存量大于变量s,修改 分配量 - s,虚存量 = 虚存量 -s.

以上需要SQL update来实现,因为这个表是多人操作随时会变化的。请教这个SQL语句如何写?如果满足条件1时需要返回虚存量是多少?

[此贴子已经被作者于2012-10-4 22:38:59编辑过]

--  作者:sloyy
--  发布时间:2012/10/5 12:30:00
--  

用 ReplaceFor 可以吗?

 Dim filter as string

filter="虚存量] <" &s 

DataTables("表A").ReplaceFor("分配量", 分配量-虚存量, filter)

DataTables("表A").ReplaceFor("虚存量", 0, filter)

filter="虚存量] >" &s 

DataTables("表A").ReplaceFor("分配量", 分配量-s, filter)

DataTables("表A").ReplaceFor("虚存量", 虚存量 -s, filter)


 


--  作者:baoxyang
--  发布时间:2012/10/5 12:37:00
--  

这个肯定不可的。


--  作者:baoxyang
--  发布时间:2012/10/5 12:41:00
--  
只能使用sql UPdate来实现
--  作者:lin_hailun
--  发布时间:2012/10/8 11:18:00
--  
 这个需要写成一个存储过程,然后在狐表里调用 exec 存储过程名