Foxtable(狐表)用户栏目专家坐堂 → 请教:关于查询表的行来自多个表按时间顺序排列的最优算法。


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

主题:请教:关于查询表的行来自多个表按时间顺序排列的最优算法。

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


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
请教:关于查询表的行来自多个表按时间顺序排列的最优算法。  发帖心情 Post By:2014/9/24 14:28:00 [显示全部帖子]

有如下表:
表1-进料表   内容如下:
      进货日期         金额
      2014-01-21  10000
      2014-02-13  1212
      2014-03-21   233
      2014-06-12   4300
      2014-08-04   2340
表2-退货表  内容如下:
      退货日期          金额
      2014-03-02    -12
      2014-05-30    -144
      2014-09-21    -340

现在要按时间顺序将上面两个表的数据加入下表:
表3-结帐单
      凭证日期       金额
      2014-01-21  10000
      2014-02-13  1212
      2014-03-02    -12
      2014-03-21   233
      2014-05-30    -144
      2014-06-12   4300
      2014-08-04   2340
      2014-09-21    -340
请教:在数据量比较多时,怎样做速度最快?
    以上,谢谢!


 
[此贴子已经被作者于2014-9-24 14:28:25编辑过]

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


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
  发帖心情 Post By:2014/9/24 14:43:00 [显示全部帖子]

谢谢!但是:

两个查询的字段名称、个数、类型必须完全一致才行。


这个条件中的“字段名称”没办法保证。有没有更好的办法呢?

另外,这查询出来的内容没办法解决上面的排序要求。


[此贴子已经被作者于2014-9-24 14:44:36编辑过]

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


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
  发帖心情 Post By:2014/9/24 15:04:00 [显示全部帖子]

谢谢!

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


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
  发帖心情 Post By:2014/9/24 15:29:00 [显示全部帖子]

SELECT 收料单别 as 凭证单别,收料单号序号 as 凭证单号,收料日期 as 凭证日期, 进货金额-扣款金额 as 应付金额 FROM {PUR收料单} WHERE 确认码 = 'Y' and 结帐码=0 UNION ALL SELECT 退货单别 as 凭证单别,退货单号 as 退货单号,退货日期 as 凭证日期,0-退货金额 as 应付金额 FROM {PUR退货单单头} WHERE 确认码 = 'Y' and 结帐码=0  UNION  SELECT 进货单别 as 凭证单别,进货单号序号 as 凭证单号,进货日期 as 凭证日期, 加工金额-扣款金额 as 应付金额 FROM {MOC托外进货单档} WHERE 确认码 = 'Y' and 结帐码=0 UNION ALL SELECT 退货单别 as 凭证单别,退货单号 as 退货单号,退货日期 as 凭证日期,0-退货金额 as 应付金额 FROM {MOC托外退货单头档} WHERE 确认码 = 'Y' and 结帐码=0   ORDER BY 凭证日期  

确实很快!图片点击可在新窗口打开查看

 回到顶部