posts - 60,comments - 71,trackbacks - 0

          在实际开发运用中,常会有关于查询排名的需求,如查询某一数据完成比率情况,通常可以用自身表先进行相关计算查询,再和原表进行关联进行查询,即可查询出相关所需的数据.

         如:要查询某一农田拆迁情况,需查询拆迁项目名,拆迁完成比率,可这样查询:
      

      select tt.projectname ,tt.wzbl, DENSE_RANK() OVER ( ORDER BY tt.wzbl DESC) as bm from
   
      (
       select * from kp_confiscate t0,(select kf.promiseunfinished/kf.taskridgepole*0.5+kf.finishedridgepole/kf.taskridgepole as wzbl,kf.id from kp_confiscate kf ) t1      
       where t0.id=t1.id
      
       ) tt;

 
   其中:
            promiseunfinished:签订协议未拆完数;
            finishedridgepole:已拆完数;
            taskridgepole :任务数
       
            拆迁完成比例=签订协议未拆完数/任务数x50%+已拆完数/任务数

           拆迁完成比例即为所需查询数据.

          即查询时,先对自身表进行相关计算查询(实际的需求就在这个子查询中完成),然后作为一个子表,和原表进行关联查询.


          注:子表中查询时,要指定查询下某字段,此字段是和原字段进行关联查询时用的,且应为唯一字段,在和原表关联查询时,不应有冗余的数据出现.
posted on 2009-09-30 17:38 henry1451 阅读(284) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: