老师您好! 我有个问题还得麻烦您!
我的这里有三个表:
1)、订单评审表(ddpsb),ddpsb里的字段有:发货日期,制造令号(zzh),zzh_xx;
2)、订单清单表(ddqdb),ddqdb的字段有:清单条码编码,zzh,zzh_yy。
3)、实时工序计算表,字段有:清单条码编码,发货日期
4)、本模块实现的目的是填充“实时工序表”里的“发货日期”的数据。发货日期为空的不填充。这三个表的关联条件是:ddpsb<->ddqdb关联是zzh相同,{ddpsb}.zzh_xx与right({ddqdb}.zzh_yy,2)相同。以此为条件取出ddpsb的发货日期和ddqdb的清单条码编码。
5)、然后以清单条码编码相同为条件,将发货日期填充到“实时工序计算表中”。
6)、这里判断的条件是:首先是{ddpsb}.zzh={ddqdb}.zzh,然后是区分{ddpsb}.zzh_xx是否为空,如果不为空,同时满足另一个条件:{ddpsb}.zzh_xx=right({ddqdb}.zzh_yy,2) ,最后如果{ddpsb}.zzh_xx为空,就直接查询{ddqdb}.清单条码编码和{ddpsb}.发货日期7、我用的临时表,然后再逐条更新到“实时工序计算表”中,您还有否简捷办法。
我下面的代码:出现错误“case附近有语法错误”
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("清单条码编码", GetType(String), 32)
dtb.AddDef("zzh", GetType(String), 32)
dtb.AddDef("zzh_xx", GetType(String), 32)
dtb.AddDef("zzh_yy", GetType(String), 32)
dtb.AddDef("发货日期", GetType(Date))
dtb.Build()
Dim cmd As New S QLCommand
Dim dt As DataTable
c md.C
c md.CommandText = "S elect 清单条码编码, 发货日期, {ddpsb}.zzh, {ddqdb}.zzh, zzh_xx, zzh_yy From {ddpsb} right Join {ddqdb} case when {ddpsb}.zzh_xx is not null and {ddpsb}.zzh_xx = right({ddqdb}.zzh_yy,2) else {ddpsb}.zzh_xx is null end On {ddpsb}.zzh = {ddqdb}.zzh where {ddpsb}.发货日期 Is Not null"
dt = cmd.ExecuteReader()
For Each dr1 As DataRow In dt.DataRows
Dim dr2 As DataRow = DataTables("统计").AddNew()
dr2("清单条码编码") = dr1("清单条码编码")
dr2("zzh") = dr1("zzh")
dr2("zzh_xx") = dr1("zzh_xx")
dr2("zzh_yy") = dr1("zzh_yy")
dr2("发货日期") = dr1("发货日期")
Next