Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16179
  • 博文数量: 6
  • 博客积分: 138
  • 博客等级: 入伍新兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-23 10:45
文章分类
文章存档

2013年(1)

2012年(4)

2011年(1)

我的朋友
最近访客

分类: SQLite/嵌入式数据库

2011-11-07 15:16:31

在数据库数据非常庞大时,往往需要进行数据封存。但是根据具体情况需要,往往需要对封存后的数据进行查询,为了解决这个问题,特制定如下解决方案:

执行步骤:

1、更新主程序
2、修改相应的想要进行封存数据查询的单据的查询语句,使其支持查询封存的单据
3、新建单据再现抬头项sql、明细项sql 存储过程
4、将单据总体中单据再现设置抬头项、明细项语句为 exec “存储过程名” :djbh
 

例:
以220单据为例
1、更新主程序 v7 scms.exe
2、修改 销售出库单查询:
数据集合:

 

  1. 销售出库单查询sql:
  2. select b.rq,a.djbh,c.danwbh,c.dwmch,,sum(a.je) as je,sum(a.she) as she,sum(a.hsje) as

  3. hsje,b.bm,b.ywy,b.username
  4. from ywmxk a,cwk b,mchk c
  5. where a.djbh=b.djbh and b.dwbh=c.dwbh and a.djbh like 'XSA%' AND b.rq>=:start_rq and

  6. b.rq<=:end_rq and c.danwbh like :ddwbh and a.chonghdjbh=''
  7. group by a.djbh,b.rq,c.danwbh,c.dwmch,b.bm,b.ywy,b.username
  8. union
  9. select b.rq,a.djbh,c.danwbh,c.dwmch,
  10. sum(a.je) as je,sum(a.she) as she,
  11. sum(a.hsje) as hsje,b.bm,b.ywy,b.username
  12. from ywmxk_fc a,cwk_fc b,mchk c --ywmxk_fc、cwk_fc (封存数据库)

  13. where a.djbh=b.djbh and b.dwbh=c.dwbh and a.djbh like 'XSA%' AND b.rq>=:start_rq and

  14. b.rq<=:end_rq and c.danwbh like :ddwbh and a.chonghdjbh=''
  15. group by a.djbh,b.rq,c.danwbh,c.dwmch,b.bm,b.ywy,b.username


  16. 销售出库单明细sql:
  17. select a.rq,a.djbh,c.spbh,c.spmch,d.dwmch,b.shl,b.dj,b.je,e.huowname
  18. from cwk a,ywmxk b,spkfk c,mchk d,huoweizl e
  19. where a.djbh=b.djbh and a.dwbh=d.dwbh and b.spid=c.spid and
  20. b.hw=e.hw and a.djbh like 'XSA%' and b.chonghdjbh='' and
  21. c.beactive<>'否' and a.rq>=:start_rq and a.rq<=:end_rq and
  22. d.danwbh like :ddwbh
  23. union
  24. select a.rq,a.djbh,c.spbh,c.spmch,d.dwmch,b.shl,b.dj,b.je,e.huowname
  25. from cwk_fc a,ywmxk_fc b,spkfk c,mchk d,huoweizl e
  26. where a.djbh=b.djbh and a.dwbh=d.dwbh and b.spid=c.spid and
  27. b.hw=e.hw and a.djbh like 'XSA%' and b.chonghdjbh='' and
  28. c.beactive<>'否' and a.rq>=:start_rq and a.rq<=:end_rq and
  29. d.danwbh like :ddwbh


  30. 3、新建存储过程 sbp_220_tt(提取单据再现抬头项),sbp_220_mx(提取单据再现明细项)
  31. CREATE PROCEDURE sbp_220_tt
  32. @djbh char(14)
  33. AS
  34. if EXISTS(select * from cwk where djbh=@djbh)
  35. select a.*,b.*,c.* from cwk a,mchk b,zhbuzl c
  36. where a.dwbh=b.dwbh and a.djbh=@djbh and a.jsfsid*=c.jsfsid
  37. else
  38. select a.*,b.*,c.* from cwk_fc a,mchk b,zhbuzl c
  39. where a.dwbh=b.dwbh and a.jsfsid*=c.jsfsid and a.djbh=@djbh
  40. GO



  41. CREATE PROCEDURE sbp_220_mx
  42. @djbh char(14)
  43. AS
  44. if EXISTS(select * from ywmxk where djbh=@djbh)
  45. select a.*,1 as xuanze,b.*,c.* from ywmxk a,spkfk b,huoweizl c where
  46. a.spid=b.spid and a.hw=c.hw and a.djbh=@djbh
  47. order by a.dj_sort
  48. else
  49. select a.*,1 as xuanze,b.*,c.* from ywmxk_fc a,spkfk b,huoweizl c where
  50. a.spid=b.spid and a.hw=c.hw and a.djbh=@djbh
  51. GO

  52. 4、设置220单据的单据总体项如下:
  53. 单据再现设置抬头项:exec sbp_220_tt :djbh
  54. 单据再现设置明细项:exec sbp_220_mx :djbh
阅读(937) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:linux多文件编译方法

给主人留下些什么吧!~~