以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 有关SQL,这样的要求如何实现 (http://foxtable.net/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 存储过程名 |