求一存储过程,谢谢大侠了,急急!!!!!

Barry_leung 2010-08-11 12:04:48
有4个表如下:
T1:ship_code,descrtion
T2: custnum,custseq,ship_code,whse,shipto_mail
T3: Order,custnum,custseq,ship_code,shipto
T4: Order,Line,custnum,custseq,duedate,promisedate
其中duedate和promisedate 为datetime

1. 如果T4的custseq为空,将使用T3的custseq,,否则,使用T4的custseq,
2. T1中的ship_code有3种:sea,air,others
3. 如果ship_code=sea, 则自动更新duedate, duedate=promisedate+20天,并且如果duedate是在每月的15日或者之后,则需要再加30天时间
如果ship_code=air, 则自动更新duedate, duedate=promisedate+7天,并且如果duedate是在
每月的15日或者之后,则需要再加30天时间
如果ship_code=others, 则自动更新duedate, duedate=promisedate+2天,并且如果duedate是在每月的15日或者之后,则需要再加30天时间
注意:promisedate是已经输入了系统.
...全文
214 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Barry_leung 2010-08-22
  • 打赏
  • 举报
回复
还是没有人出来帮忙?失望啊
kitajima-- 2010-08-19
  • 打赏
  • 举报
回复
update T4 set duedate=
CASE WHEN T4.custnum is null then ship_code = t3.ship_code
when T4.custnum is not null then ship_code=(select ship_code from t4,t2 where t4.custnum=t2.custnum and t4.seq=t2.seq)
end.
CAST(ship_code AS varchar(20)) ='air' and day(dateadd(d,7,promisedate))>=15 then dateadd(d,37,promisedate)
CAST(ship_code AS varchar(20))='others' and day(dateadd(d,2,promisedate))>=15 then dateadd(d,32,promisedate)
WHERE T4.Order=T3.Order and T1.ship_code=T3.ship_code
//--注:在1#楼的基础上变动的,您看合适吗,不常写Procedure
请问1#楼,您回复的帖子带 颜色字体 是用什么工具回复的呢
Barry_leung 2010-08-19
  • 打赏
  • 举报
回复
重新整理了一下,
有4个表如下:
T1:ship_code,descrtion
T2: custnum,custseq,ship_code,whse,shipto_mail
T3: Order,custnum,custseq,ship_code,shipto
T4: Order,Line,custnum,custseq,duedate,promisedate
其中duedate和promisedate 为datetime

1.1 If T4.custnum是空,then ship_code=t3.ship_code
1.2 If T4.custnum不是空,then ship_code=(select ship_code from t4,t2
where t4.custnum=t2.custnum and t4.seq=t2.seq)

2.1 If ship_code=air, then Due_date=promise_date-7 ,大等于15日,则due_date为上月15日
2.2 If ship_code=sea, then Due_date=promise_date-42 ,大等于15日,则due_date为上月15日
2.3 If ship_code=others, then Due_date=promise_date-2 ,大等于15日,则due_date为上月15日
Barry_leung 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 w87875252l 的回复:]
有点乱
[/Quote]

是有点乱,因为数据比较多,有邮箱可以单独发送给你,这样就直观了.
Barry_leung 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oraclers 的回复:]
引用 2 楼 barry_leung 的回复:
意思是在更新duedate时,优先考虑T3的custseq,然后再考虑T4的custseq,上面是的sql语句没有考虑这个条件.

按你说的更新DueDate好象与CustSeq没关系。
[/Quote]

当然有关系,因为关系Duedate是根据shipe_code计算,而在T4中没有该字段,是依据T4中的custseq和custnum才能确定ship_code.
Oraclers 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 barry_leung 的回复:]
意思是在更新duedate时,优先考虑T3的custseq,然后再考虑T4的custseq,上面是的sql语句没有考虑这个条件.
[/Quote]
按你说的更新DueDate好象与CustSeq没关系。
w87875252l 2010-08-18
  • 打赏
  • 举报
回复
有点乱
duanzhi1984 2010-08-11
  • 打赏
  • 举报
回复

1.如果T4的custseq为空,将使用T3的custseq,,否则,使用T4的custseq??、不晓得什么意思

3.
update T4 set duedate=
CASE WHEN ship_code='sea' and day(dateadd(d,20,promisedate))>=15 then dateadd(d,50,promisedate)
WHEN ship_code='air' and day(dateadd(d,7,promisedate))>=15 then dateadd(d,37,promisedate)
WHEN ship_code='others' and day(dateadd(d,2,promisedate))>=15 then dateadd(d,32,promisedate)
else duedate end
from T4,T1,T3
WHERE T4.Order=T3.Order and T1.ship_code=T3.ship_code
Barry_leung 2010-08-11
  • 打赏
  • 举报
回复
意思是在更新duedate时,优先考虑T3的custseq,然后再考虑T4的custseq,上面是的sql语句没有考虑这个条件.
内容概要:本研究聚焦于永磁同步电机(PMSM)无位置传感器控制技术,提出了一种融合零低速区脉振高频电压注入与中高速区反电动势观测的复合控制策略。该策略通过在零低速区利用脉振高频电压注入法,基于交直轴高频阻抗差异实现转子初始位置的精确辨识与低速稳定运行;在中高速区无缝切换至基于反电动势的观测器,实现对电机转速与位置的连续、高精度估计,从而覆盖电机全速域运行需求。研究重点分析了两种观测方法的融合机制、切换逻辑及系统稳定性,并通过Simulink仿真实验验证了所提策略的有效性与对电机参数变化的鲁棒性。; 适合人群:具备电机控制、电力电子或自动化专业背景,从事电机驱动系统研发的研究生及工程技术人员。; 使用场景及目标:①研究和设计永磁同步电机无位置传感器控制系统;②解决电机在零低速区启动困难和位置观测不准的问题;③提升电机控制系统对参数摄动的适应能力和全速域运行的稳定性。; 阅读建议:此资源以Simulink仿真实现为核心,建议读者在学习时结合理论分析与仿真模型,重点关注高频信号注入的参数设计、反电动势观测器的结构以及两种模式间的平滑切换逻辑,并通过调整参数进行仿真验证,以深入理解其控制机理与鲁棒性。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧