物流公司统计按物资类别采购的前二十家sql
2、集团主要的供应商(按物资分类列举前10或20家名单),年采购金额、占比,结算方式,付款周期;(夏)
年份要求是2013年
arap_djfb中的单据日期不是常规的日期类型

需要做这样的转换才可以
select to_char(to_date(billdate,'yyyy,mm,dd'),'yyyy' )from arap_djfb
按照材料类别的分类需要截取字段的后两位
select areaclcode,substr(bd_areacl.areaclcode,-2), substr(bd_areacl.areaclcode,length(bd_areacl.areaclcode)-1,2) from bd_areacl
感谢影哥的-2,我搞复杂了

sql如下
select --arap_djzb.djbh 单据编号,
--arap_djfb.billdate as 单据日期,
--bd_corp.unitname as 付款单位,
-- arap_djfb.zy as 付款摘要,
sum(arap_djfb.bbye) as allmoney ,
--arap_djfb.fkyhmc as 付款银行名称,
--(select bankacc from bd_accbank where pk_accbank = arap_djfb.fkyhzh) 付款银行账号,
--bd_cubasdoc.custcode as 收款单位编码,
--bd_cubasdoc.custname as 收款单位名称,
bd_accbank.unitname 收款单位名称,
--bd_accbank.bankname as 收款银行名称,
--bd_accbank.bankacc as 收款银行账号,
bd_areacl.areaclcode,
bd_areacl.areaclname
-- arap_djfb.payflag
from bd_cubasdoc, arap_djfb, bd_cumandoc, arap_djzb, bd_corp, bd_accbank,bd_areacl
where arap_djfb.ksbm_cl = bd_cumandoc.pk_cumandoc
and bd_cumandoc.pk_cubasdoc = bd_cubasdoc.pk_cubasdoc
and arap_djfb.vouchid = arap_djzb.vouchid
and bd_corp.pk_corp = arap_djzb.dwbm
and bd_accbank.pk_accbank = arap_djfb.skyhzh
and bd_areacl.pk_areacl=bd_cubasdoc.pk_areacl
and arap_djfb.payflag in ('', '')
and arap_djfb.dr = ''
--and (select bankacc from bd_accbank where pk_accbank = arap_djfb.fkyhzh) ='32001735038059899999'
--and bd_corp.unitcode='010201'
and substr(arap_djfb.billdate,1,4)=''
and bd_areacl.areaclcode<>''
and length(bd_accbank.unitname)>3
and bd_accbank.unitname not like '江苏省建工%'
--and bd_areacl.areaclname like '%沧州%'
-- and bd_cubasdoc.custcode = '17051211693'
group by bd_accbank.unitname, bd_areacl.areaclcode, bd_areacl.areaclname order by substr(bd_areacl.areaclcode,-2), allmoney desc
昨天晚上想到oracle应该可以分组取前20,于是百度,果然找到了itpub
http://www.itpub.net/thread-1290416-1-1.html
row_number()over(partition by substr(areaclcode,-2) order by allmoney desc) c1 这里c1不可以直接放在where条件,必须再嵌套一次
dense_rank()over也行
select * from (
select allmoney,unitname,areaclcode,areaclname,
row_number()over(partition by substr(areaclcode,-2) order by allmoney desc) c1 from
(select --arap_djzb.djbh 单据编号,
--arap_djfb.billdate as 单据日期,
--bd_corp.unitname as 付款单位,
-- arap_djfb.zy as 付款摘要,
sum(arap_djfb.bbye) as allmoney ,
--arap_djfb.fkyhmc as 付款银行名称,
--(select bankacc from bd_accbank where pk_accbank = arap_djfb.fkyhzh) 付款银行账号,
--bd_cubasdoc.custcode as 收款单位编码,
--bd_cubasdoc.custname as 收款单位名称,
bd_accbank.unitname ,
--bd_accbank.bankname as 收款银行名称,
--bd_accbank.bankacc as 收款银行账号,
bd_areacl.areaclcode,
bd_areacl.areaclname
-- arap_djfb.payflag
from bd_cubasdoc, arap_djfb, bd_cumandoc, arap_djzb, bd_corp, bd_accbank,bd_areacl
where arap_djfb.ksbm_cl = bd_cumandoc.pk_cumandoc
and bd_cumandoc.pk_cubasdoc = bd_cubasdoc.pk_cubasdoc
and arap_djfb.vouchid = arap_djzb.vouchid
and bd_corp.pk_corp = arap_djzb.dwbm
and bd_accbank.pk_accbank = arap_djfb.skyhzh
and bd_areacl.pk_areacl=bd_cubasdoc.pk_areacl
and arap_djfb.payflag in ('', '')
and arap_djfb.dr = ''
--and (select bankacc from bd_accbank where pk_accbank = arap_djfb.fkyhzh) ='32001735038059899999'
--and bd_corp.unitcode='010201'
and substr(arap_djfb.billdate,1,4)=''
and bd_areacl.areaclcode<>''
and length(bd_accbank.unitname)>3
and bd_accbank.unitname not like '江苏省建工%'
--and bd_areacl.areaclname like '%沧州%'
-- and bd_cubasdoc.custcode = '17051211693'
group by bd_accbank.unitname, bd_areacl.areaclcode, bd_areacl.areaclname order by substr(bd_areacl.areaclcode,-2), allmoney desc))
where c1<=20

物流公司统计按物资类别采购的前二十家sql的更多相关文章
- destoon信息或者公司归属多个类别的解决方式
有时候,一条信息属对应于多个类别,在destoon原生系统里是没有这个解决方案 在公司行业类别选择的地方实现了这个功能,但是选择体验不太好,不符合我当前的需求,目前我写了如下解决方案 系统代码如下: ...
- win8扁平风格的物流公司网站后台管理模板——后台
链接:http://pan.baidu.com/s/1o79Zp2M 密码:tqrz
- K2 BPM_采购端到端解决方案,激活合规采购新动能_十年专注业务流程管理系统
「方案背景」企业管理标准化演进之路 企业的成长离不开标准化,企业的可持续发展更离不开标准化.随着市场竞争的日趋激烈,标准化已经成为企业参与市场竞争的战略性手段,也成为企业可持续发展的重要手段.聚焦到采 ...
- 数据可视化之powerBI技巧(二十)采悟:创建度量值,轻松进行分组统计
上一篇文章中的分组,都是通过新建列的方式实现的,直观上比较容易理解.不过这样都修改了原始数据的结构,如果我们不在源表上进行修改,直接通过度量值的方式来进行分组,是否可以实现呢? 答案当然是肯定的. 采 ...
- Oracle学习笔记四 SQL命令(二):SQL操作语言类别
SQL分为下列语言类别 1.数据定义语言(DDL) Create.Alter.Drop 2.数据操纵语言(DML) Insert.Select.Delete.Update 3.事务控制语言(TCL) ...
- 统计某一字段等于不同值的个数的sql语句(分享)
本文介绍下,用一条sql语句统计某一字段等于不同值的个数,方法很独特,有需要的朋友参考下. 表t,数据: id type001 1001 0002 1001 ...
- Java进阶(二十六)公司项目开发知识点回顾
公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...
- 统计一个数据库中,无记录的表的sql语句
SQL Server数据库中统计无记录数的表 大家使用的时候,将sql脚本中的红色[TestDB] 换成你的目标数据库名称. /************************************ ...
- 二十、dbms_stats(用于搜集,查看,修改数据库对象的优化统计信息)
1.概述 作用:用于搜集,查看,修改数据库对象的优化统计信息. 2.包的组成 1).get_column_stats作用:用于取得列的统计信息语法:dbms_stats.get_column_stat ...
随机推荐
- 使用NodeJS、GruntCLI遇到的问题
运行环境CMD NODEJS版本v0.8.4 node --version 需求:需要用到Grunt的JS编译功能,各位别笑我. 使用代理 npm config set proxy http://i ...
- cf
Financing a capital project with equity may be a signal to investors that a company's prospects are ...
- iOS开发拓展篇—音频处理(音乐播放器3)
iOS开发拓展篇—音频处理(音乐播放器3) 说明:这篇文章主要介绍音频工具类和播放工具类的封装. 一.控制器间数据传递 1.两个控制器之间数据的传递 第一种方法:self.parentViewCont ...
- PHP批量过滤MYSQL数据库内站外链接和图片
因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...
- .htaccess保护目录与文件
一般来说很多虚拟主机预设是没有开启保护网站主机目录下的文件,其实很危险的,假若你的目录下忘记放置index文件,那很可能您目录就被看光,一个不小心很可能重要资料就被拿走,这是蛮严重的一件事情.如果是L ...
- [转]Android,Yocto,Meego构建系统的区别
http://m.blog.csdn.net/blog/sonach_tjsd/6647829
- Ubuntu user switch
To list all users you can use: cut -d: -f1 /etc/passwd To add a new user you can use: sudo adduser n ...
- Python学习路程day13
JavaScript JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. ...
- 二分查找C++
#include <iostream> using namespace std; //二分查找:每次都从中间位置寻找,如果找到了就返回,如果没找到, //则分两种情况: //(1)中间元素 ...
- 转 纯CSS设置Checkbox复选框控件的样式
Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...