excel表格查询数据库.docx
- 文档编号:12763932
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:6
- 大小:17.45KB
excel表格查询数据库.docx
《excel表格查询数据库.docx》由会员分享,可在线阅读,更多相关《excel表格查询数据库.docx(6页珍藏版)》请在冰点文库上搜索。
excel表格查询数据库
竭诚为您提供优质文档/双击可除
excel表格查询数据库
篇一:
excel+sql查询表
/***现金流量表凭证查询***/
-
-useuFdata_201_20xx--连接指定数据库
declaRe@_yeaRsmallint=20xx--确定查询年度
declaRe@codelinvarchar(20)=(selectcodingRule
FRom
gradedef_base
wheRekeywoRd
=codeandiyear=@_yeaR)
declaRe@codelin1int=leFt(@codelin,1)
declaRe@codelin2int=substRing(@codelin,2,1)+@codelin1
declaRe@codelin3int=substRing(@codelin,3,1)+@codelin2
declaRe@codelin4int=substRing(@codelin,4,1)+@codelin3
withcode_cteas(selectccode,ccode_name,igrade,bcash|bbankas现金
FRomcode
wheReiyear=@_yeaR)--科目公用表表达式
(cte)
,gl_accvouch2as(selectgl_accvouch.iyearas年
,gl_accvouch.iperiodas月
,day
(gl_accvouch.dbill_date)as日
,gl_accvouch.csignas凭
证类别
,gl_accvouch.i_id
,gl_accvouch.ino_idas凭
证编号
,现金科目=cast((select
code_cte.现金
FRomcode_cte
wheRegl_accvouch.ccode=code_cte.ccode)
asint)
FRomgl_accvouch
wheRegl_accvouch.iperiodbetween1and12
and
gl_accvouch.iflagisnull
and
gl_accvouch.iyear=@_yeaR
)--判断现金分录
select凭证.iyearas年
,凭证.iperiodas月
,day(凭证.dbill_date)as日
,记帐标志=casewhen凭证.ibook=1then√elsenullend
,凭证.csignas凭证类别
,凭证.ino_idas凭证编号
,凭证.cdigestas摘要
,凭证.ccodeas科目编码
,code.ccode_nameas科目名称
,leFt(凭证.ccode,@codelin1)as一级编码
,一级科目=(selectcode_cte.ccode_name
FRomcode_cte
wheReleFt(凭证.ccode,@codelin1)=code_cte.ccode)
,二级编码=casewhencode.igrade>1thenleFt(凭证.ccode,@codelin2)elsenullend
,二级科目=casewhencode.igrade>1
then(selectcode_cte.ccode_name
FRomcode_ctewheReleFt(凭证.ccode,@codelin2)=code_cte.ccode)
elsenullend
,现金科目=casewhen(selectcode_cte.现金
FRomcode_ctewheRe
证.ccode=code_cte.ccode)=1then√
elsenullend
,sign((selectsum(现金科目)
FRomgl_accvouch2凭
wheRegl_accvouch2.年=@_yeaR
andgl_accvouch2.月=凭证.iperiod
andgl_accvouch2.凭证类别=凭证.csign
andgl_accvouch2.凭证编号=凭证.ino_id))as流量标志
,主表项目=casewhen((selectsum(现金科目)
FRomgl_accvouch2
wheRegl_accvouch2.年=@_yeaR
andgl_accvouch2.月=凭证.iperiod
andgl_accvouch2.凭证类别=凭证.csign
andgl_accvouch2.凭证编号=凭证.ino_id))=0
thennull--非流量凭证无主表项目
when(selectcode_cte.现金
FRomcode_cte
wheRe凭证.ccode=code_cte.ccode)=1
then现金
whenleFt(凭证.ccode,@codelin3)in(66018001,66018002)
then支付给职工以及为职工支付的现金--自营工资福利whenleFt(凭证.ccode,@codelin3)=660303
then汇率变动对现金的影响额--汇兑损益
whenleFt(凭证.ccode,@codelin3)between12210009and12210011then购买商品、接受劳务支付的现金--自营备用金与押金whenleFt(凭证.ccode,@codelin2)=122100
then销售商品、提供劳务收到的现金--其他自营流水
whenleFt(凭证.ccode,@codelin2)in(660101,660102)
then支付给职工以及为职工支付的现金--工资福利
whenleFt(凭证.ccode,@codelin2)in(660302,660303)
then收到的其他与经营活动有关的现金--财务费用之利息收入、汇兑损益
whenleFt(凭证.ccode,@codelin1)in(1121,1122,6001,6041,6051)
then销售商品、提供劳务收到的现金
--应收票据、应收账款、主营收入、租赁收入、其他收入whenleFt(凭证.ccode,@codelin1)in(1221,6301,6711)
then收到的其他与经营活动有关的现金--其他应收、营业外收支whenleFt(凭证.ccode,@codelin1)in(1405,1801,2202,6401,6402,6601,6603)then购买商品、接受劳务支付的现金
--库存商品、长期待摊、应付账款、主营与其他业务成本、销售与财务费用
whenleFt(凭证.ccode,@codelin1)in(2221,6403,6801)
then支付的各项税费--税费
whenleFt(凭证.ccode,@codelin1)=6111
then取得投资收益所收到的现金
whenleFt(凭证.ccode,@codelin1)in(1601,1604,1701)
then购建固定资产、无形资产和其他长期资产所支付的现金whenleFt(凭证.ccode,@codelin1)in(4001,4002)
then吸收投资所收到的现金
whenleFt(凭证.ccode,@codelin1)=4104
then分配股利利润或偿付利息所支付的现金
elsenull
end
,附表项目=case
whenleFt(凭证.ccode,@codelin1)=4103then净利润
whenleFt(凭证.ccode,@codelin1)=1602then固定资产折旧
whenleFt(凭证.ccode,@codelin1)=1801then待摊费用减少(减:
增加)whenleFt(凭证.ccode,@codelin1)=6603then财务费用
whenleFt(凭证.ccode,@codelin1)=6111then投资损失(减:
收益)whenleFt(凭证.ccode,@codelin1)=1405then存货的减少(减:
增加)whenleFt(凭证.ccode,@codelin1)in(1122,1221)
then经营性应收项目的减少(减:
增加)
whenleFt(凭证.ccode,@codelin1)in(2202,2221)
then经营性应付项目的增加(减:
减少)
elsenull
end
,凭证.mdas借方金额
,凭证.mcas贷方金额
FRomgl_accvouchas凭证
leFtouteRjoincodeon凭证.ccode=code.ccode
wheRe凭证.iperiodbetween1and12
and凭证.iflagisnull
and凭证.iyear=@_yeaR
--过虑非法月分(期初数据可能会显示0月等)与作废凭证、筛选年度and(((selectsum(现金科目)
FRomgl_accvouch2
wheRegl_accvouch2.年=@_yeaR
andgl_accvouch2.月=凭证.iperiod
andgl_accvouch2.凭证类别=凭证.csign
andgl_accvouch2.凭证编号=凭证.ino_id))>0
oRleFt(凭证.ccode,@codelin1)
in
(1122,1221,1405,1602,1801,2202,2221,4103,6111,6603))
oRdeRby1,2,5,6
篇二:
在excel中使用sql语句实现精确查询
微博上有人回复评论说直接用vloo
kup
、或者导入数据库进行查询处理就好了,岂不是更高效、更灵活;其实给人的第一直观感觉是这样子的,但是我们多想一步,这篇文章的应用场景、使用前提条件是什么?
我想到的有以下几个方面:
①数据量不是很大的时候;②数据结构导入数据库不是很合适、或要转换,反而显得麻烦;③使用Vlookup比较多的同学,相信明白匹配不是那么精确的,而且会返回“#n/a错误值”,另外vlookup每次返回的是一列值;④在excel环境里面,可以很好的和表格、图表进行结合,使用数据刷新功能一劳永逸的完成了常规图表的自作。
在我想到的这几个前提环境下,相信使用这种方式会比较高效。
另外一点,这篇文章提到的这个功能点和技巧告诉大家一个信息,其实在excel里面也是可以进行数据查询和数据库查询的(在这个功能区下还有数据库查询哦,自己去研究)。
温馨提示:
据了解excel20xx及以上版本才有这个功能,20xx版本的要么路过学习一下、要么去升级下自己的版本。
有如下的2张表,表1里面包含姓名、时间、培训内容字段的数据,表2包括姓名、职务、年薪字段的数据,我们可以看到2张表都有姓名字段。
表1
表2
现在想统计表2中名单上的人在表1中的培训记录。
人肉实现或者Vlookup的方式当然这个简单的case可以实现,但是要学会举一反三,学习方然是以简单的例子给你讲解(还纠结的回到文章开头去想前提条件和你能想到能运用的场景)。
这里给大家介绍在excel中使用简单sql语句的方法来实现对不同表格间数据的整合和筛选。
首先,也是最重要的一部是为这两个表命名,方法是选中表格后单击右键选择“定义名称”,如下所示
单击后,出现命名对话框
这里将表1和表2分别命名为table1和table2。
然后选择上方的“数据”选项卡,选择“自其他来源”下的“来自microsoftquery”选项
在弹出的对话框中选择excelFiles*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉,如下图所示
然后点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表sample.xlsx
点击确定后之后弹出添加表的对话框,如下图所示
这里要将table1和table2都添加一遍,添加完成后,查询器应当是如下图所示的样子
此时,单击图10中输入sql语句的按钮,弹出输入sql语句的对话框,如下图所示
上图中的代码是这样的,偷懒的同学可以直接ctRl+c/ctRl+V:
selecttable1.姓名,table1.时间,table1.培训内容,table2.姓名
FRomtable1,table2
wheRetable1.姓名=table2.姓名
其基本含义就是将表1中和表2中姓名相符的记录从表1中筛选出来。
select语句是sql语言中最基础也是最重要的语句之一,加上wheRe语句后的限制条件,可以实现大多数的数据查询和筛选工作,其语法也不困难,稍微学习一下就会了。
输入完代码,单击确定,就可以看到筛选出来的数据表了,如下图所示
篇三:
如何在excel表格中批量查询数据
如何在excel表格中批量查询数据,例如a列中有1000个电话号码,b列中有200个电话号码,我要从a列中找出b列中的200个号码,并且标示出来,请指教!
用条件格式选定a列---格式--条件格式--公式--输入以下公式-----在格式里设置标记颜色---确定=countiF($b:
$b,a1)=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- excel 表格 查询 数据库