Foxtable(狐表)用户栏目专家坐堂 → [求助]s elect 子查询求助


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

主题:[求助]s elect 子查询求助

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]s elect 子查询求助  发帖心情 Post By:2016/1/21 10:41:00 [显示全部帖子]

Tables(e.Form.Name & "_Table1").Fill("s elect 工序,道次,卷号,母卷号,牌号,厚度,宽度,重量,起始时间,结束时间,投料量,成材率,作业分钟数,(s lect top 1 [检测时间] from {性能检测} b where a.记录标记1 = b.工序记录标记 order by 检测时间 desc) as 检测时间......

上面的子查询语句中,我希望实现这样的功能:
如果(s lect top 1 [检测时间] from {性能检测} b where a.记录标记1 = b.工序记录标记 order by 检测时间 desc) as 检测时间 查找不到数据,那么就执行:
(s lect top 1 [检测时间] from {销售出库} b where a.记录标记1 = b.工序记录标记 order by 检测时间 desc) as 检测时间
如果还是找不到,就不用管了,就让查询表上空着
谢谢老师!

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2016/1/21 11:08:00 [显示全部帖子]

把下面代码放入项目后执行错误,请老师看看
(case when (s elect count(*) from {性能检测} b where a.记录标记1 = b.工序记录标记) > 0 then s elect top 1 [检测时间] from {性能检测} b where a.记录标记1 = b.工序记录标记 order by 检测时间 desc Else (s elect top 1 [日期] from {质量说明} b where a.记录标记1 = b.销售记录标记 order by 日期 desc) end) as 检测时间

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2016/1/21 11:16:00 [显示全部帖子]

是SQL的,如果上面的代码没有问题的话,我再去试试

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2016/1/21 11:59:00 [显示全部帖子]

老师,我找到原因了,少了一对括号造成的错误。
(case when (s elect count(*) from {性能检测} b where a.记录标记1 = b.工序记录标记) > 0 then s elect top 1 [检测时间] from {性能检测} b where a.记录标记1 = b.工序记录标记 order by 检测时间 desc Else (s elect top 1 [日期] from {质量说明} b where a.记录标记1 = b.销售记录标记 order by 日期 desc) end) as 检测时间

 回到顶部