Foxtable(狐表)用户栏目专家坐堂 → 【求助】遍历表取整


  共有2395人关注过本帖树形打印复制链接

主题:【求助】遍历表取整

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/11 21:20:00 [显示全部帖子]

Dim i As Integer = 3101
Dim k As Integer = math.Ceiling(i/100) * 100
msgbox(k)

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/13 9:18:00 [显示全部帖子]

不支持,好像是SQL server 2012才开始支持。SQL server 2008使用case when即可:http://www.foxtable.com/webhelp/topics/1827.htm

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/13 10:19:00 [显示全部帖子]

同时满足所有条件时,按顺序取符合条件的第一个。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/13 14:27:00 [显示全部帖子]

casewhen一般不用在条件里,这用法明显没有什么用,而且多余。

ALTER PROCEDURE [dbo].[抛转主计划]
@订单编号  nvarchar(30) 
AS
BEGIN
UPDATE [dbo].[PMC_主计划]
SET [木工车间_承诺期] = (select MAX(工序承诺期) from [dbo].[SC_生产工piao明细] where [车间]= '木工车间'  and ISNULL([非计划工序],'') = 0 and 订单编号=@订单编号 and 订单_结案否 = 'N')
   ,[底漆车间_承诺期] = (select MAX(工序承诺期) from [dbo].[SC_生产工piao明细] where [车间]= '底漆车间' and ISNULL([非计划工序],'') = 0 and 订单编号=@订单编号 and 订单_结案否 = 'N')
   where 订单编号=@订单编号 and 订单_结案否 = 'N'
End

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/13 14:45:00 [显示全部帖子]

没看懂。设置的是[木工车间_承诺期],直接获取[车间]= '木工车间' 的值就可以啊,和有几个车间有什么关系?!

难道 '木工车间'没有值的时候就取其它车间的最大值作为[木工车间_承诺期]?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/13 15:51:00 [显示全部帖子]

那没有办法一条sql处理,看懂自己改进

ALTER PROCEDURE [dbo].[抛转主计划]
@订单编号  nvarchar(30) 
AS
BEGIN
declare @d1 as date;
declare @d2 as date;
declare @d3 as date;
select @d1=MAX(工序承诺期) from [dbo].[SC_生产工piao明细] where [车间]= '木工车间'  and ISNULL([非计划工序],'') = 0 and 订单编号=@订单编号 and 订单_结案否 = 'N'
select @d2=MAX(工序承诺期) from [dbo].[SC_生产工piao明细] where [车间]= '底漆车间'  and ISNULL([非计划工序],'') = 0 and 订单编号=@订单编号 and 订单_结案否 = 'N'
select @d3=MAX(工序承诺期) from [dbo].[SC_生产工piao明细] where [车间]= '打磨车间'  and ISNULL([非计划工序],'') = 0 and 订单编号=@订单编号 and 订单_结案否 = 'N'
if @d2 is null
begin
set @d2=@d3
end
if @d1 is null
begin
set @d1=@d2
end

UPDATE [dbo].[PMC_主计划]
SET [木工车间_承诺期] =@d1,[底漆车间_承诺期] = @d2
End
[此贴子已经被作者于2020/10/13 15:50:58编辑过]

 回到顶部