男情人发我照片在他动不动就删微信的女人什么意思

10796人阅读
其他数据库(19)
最近遇到&SQL如何链接远程MySQL&这个问题,现在问题终于解决,特把方法贴出来:(我所用的操作系统是Win7,数据库是SQL2005。)
1、在SQL SERVER服务器上安装MYSQL ODBC驱动;(下载地址)
2、安装好后,在管理工具-ODBC数据源-系统DSN-添加-选择 MYSQL ODBC 3.51 DRIVER-完成
会跳出来MYSQL连接参数.&Data Source Name:数据源名称&Decription:描述,随便写&Server:MYSQL服务器的IP&Port:MYSQL的端口,默认的是3306.可以改的.&User:连接账号(在mysql上授权的账号,同时给予相应权限)&Password:密码
&Database:选择链接的数据库填好之后,点下test.成功了则会如图跳出提示框.
成功之后:
3,打开SQL数据库,找到链接服务器.创建链接服务器,大家都会的,所以我就把参数发一下.如图,常规选项的其他的就不用填了.确定就行了.
&& 这里,需要注意:访问接口要选择&Microsoft OLE DB Provider for ODBC Drivers&。
         数据源:选择之前已创建好的ODBC接口。
4、测试一下:
      (查询语句)SELECT &&* &&FROM&&OPENQUERY(MYSQL, 'select &&* &&from &&table ' &)
      (插入语句)Insert openquery(MYSQL, 'select * from table') (id,name,password) values(8,'齐达内','99999')
  (删除语句)delete openquery(MYSQL, 'SELECT * FROM table')  (修改语句)update openquery(MYSQL, 'SELECT * FROM table') SET x_name = 'C' WHERE x_id = 1
   如果在执行&删除语句&、&修改语句&时报错,可以试一下下面的方法:
   &补充&在配置数据源的时候,勾选上&Return Matching Rows&项
     && &&
--------------------------------------------
在公司中经常会遇到部署多种数据库环境的情况,对于开发人员来说经常在不同数据库之间转换确实有些繁琐,本篇将介绍从SQL Server 操作MySQL 数据库的方法。
&相关参考资料
/downloads/mirror.php?id=376346
/mysql#p21
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1149576次
积分:11214
积分:11214
排名:第1276名
原创:42篇
转载:384篇
评论:73条
(1)(1)(1)(1)(3)(3)(4)(3)(25)(33)(11)(13)(44)(11)(1)(35)(25)(17)(9)(34)(25)(39)(54)(10)(19)(2)(2)>>>>用友U8 如何用SQL查询直接读取其他数据源
用友U8 如何用SQL查询直接读取其他数据源 0:0:0 用友U8编辑
用友U8 如何用SQL查询直接读取其他数据源用友U8 如何用SQL查询直接读取其他数据源
问题原因:如何用SQL查询直接读取其他数据源
解决方法:USE ufdata_999_2001SELECT top 1 'ACCESS'as 数据库, [cSysID], [cID], [cName], [cCaption], [cType], [cValue], [cDefault], [bVisible], [bEnable]FROM
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\temp\fq.mdb';'admin';'', accinformation)
union allSELECT top 1 'SQLOLEDB',a.[cSysID], [cID], [cName], [cCaption], [cType], [cValue], [cDefault], [bVisible], [bEnable]FROM OPENROWSET('SQLOLEDB','(local)';'sa';'',
'select * from ufdata_999_2001..accinformation') AS aunion allSELECT top 1 'MSSQL',[cSysID], [cID], [cName], [cCaption], [cType], [cValue], [cDefault], [bVisible], [bEnable]from accinformation
如果您的问题还没有解决,或者在百度上找不到答案可以到 上找一下
用友U8如何录入财务模块的期初数据用友U8录入财务模块,总账、往来、固定资产、成本管理的期初数据
财务系统需要录入的期初数据总账:有辅助核算的科目按科目与辅助项的组合汇总录入。没有辅助核算的科目可以按科目汇总录入。跟踪未两清的往来记录需在往来明细中录入。从第二个会计年起,新年度首先需要通过〖开账〗将上年基础档案、基础设置结转到本年。其中基础档案包括会计科目、备查科目设置、外币设置; 基础设置包括选项-自定义项作为辅助核算设置、选项-行业性质显示;其次需要通过〖结转〗将上年度的数据结转到本年年初。
需求规划计算结果不准问题现象:计算结果不准,不知从哪得出
解决方案:有数据可见:邮件中问题描述的相关物料的库存出库5000,产成品入库6200,待发货(发货单和)出库2000;因为库存现存量对预入预出由参数确定,而制造单独计算不考虑其参数;即制造现存默认是考虑预入预出的并且考虑“未指定仓库和批次”的到货。所以库存现存结存1200,制造现存-800;可以发货出库后计算,库存和制造现存即可。
对应版本:用友U8.52对应产品线:供应链对应模块:销售管理模块问题现象:销售发票根据订单及发货单或手工增加后无法保存问题原因:数据问题解决方案:修改发票最大单号即可
对应版本:用友U8.60sp对应产品线:财务系统对应模块:应付模块问题现象:客户在应收模块做应收单异币核销时,其中涉及美元.日元及人民币,当需要核销的数额很大,笔数很多时,在进行核销时,核销金额变少即不一致.问题原因:补丁解决解决方案:补丁编号:1689;补丁日期,日;补丁文件:apsql.dllarsql.dll
报表公式设置问题报表公式设置问题
自动编号:1566产品版本:13-用友通标准版10.0产品模块:2-UFO报表所属行业:0-通用开放状态:2-最终解决方案关 键 字:财务报表,chckje适用产品:13补 丁 号:问题名称:报表公式设置问题问题现象:假如,存货核算系统材料领用出库归集到项目,仓库编码:01,收发类别编码:22,存货编码:001,项目大类编码:05,项目编码:01001,领用日期:,我要在UFO报表中通过公式取六月份此项目的材料耗用金额,该怎么设置公式? 原因分析:项目大类只能设置成本对象项目,这样的话项目大类编码是99 公式可以这样设置 chckje("06/01/2006",,,,"wfco","01","22","001","01001") 解决方案:项目大类只能设置成本对象项目,这样的话项目大类编码是99 公式可以这样设置 chckje("06/01/2006",,,,"wfco","01","22","001","01001")
用友U8 在本期应收本币一栏出现的是凭证索引号用友U8 在本期应收本币一栏出现的是凭证索引号
问题原因:凭证和明细帐摘要有空格
解决方法:将gl_accvouch和ap_detail表中相关记录的摘要空格去除
用友u8软件发货单审核后生成销售出库单号有特殊字符发货单审核后生成销售出库单号有特殊字符
发货单审核后生成销售出库单号有特殊字符原因分析:数据库编码问题,在数据库中查询以下SQL语句:SELECT *FROM RdRecordWHERE (cWhCode = '01') AND (cBusType = '普通销售')找到最后一条记录,即最大记录,如cCode = '000LT419B[',然后用以下更新UPDATE RdRecordSET cCode = ''WHERE (cCode = '000LT419B[')将最后张单据的最大号改为问题解答:..您好,我们查看你的数据,是数据库编码问题,在数据库中查询以下SQL语句:SELECT *FROM RdRecordWHERE (cWhCode = '01') AND (cBusType = '普通销售')找到最后一条记录,即最大记录,如cCode = '000LT419B[',然后用以下更新UPDATE RdRecordSET cCode = ''WHERE (cCode = '000LT419B[')将最后张单据的最大号改为
用友u8软件跨帐套查询看不到帐套信息跨帐套查询看不到帐套信息
跨帐套查询看不到帐套信息原因分析:设置未到位问题解答:请在跨帐套查询界面中工具菜单下进行帐套权限设置,只有赋予了相应帐套查询权限的操作员登陆时才能看到帐套信息。跨帐查询系统管理员KZCX为默认管理员,操作密码默认为9。
U8应付冲应收流程u8:应付冲应收
用某客户的应收账款,冲抵某供应商的应付款项。系统通过应收冲应付功能将应付款业务在客户和供应商之间进行转账,实现应付业务的调整,进行应收债权与应付债务的冲抵。【操作步骤】选择【转账】菜单项下中的【应付冲应收】。如果您需要用应付款冲抵应收款,则您须选中“应付冲应收”。如果您需要红字应付单冲销红字应收单,则您可以将“负单据”复选框选中。点击“应付款”页签。
对应版本:用友U8.51对应产品线:公共平台对应模块:系统管理模块问题现象:U8安装后出现’430’或’440’错误问题原因:IE浏览器版本低解决方案:安装IE6.0以上版本
对应版本:用友U8.61对应产品线:供应链对应模块:库存管理模块问题现象:用户希望在收发存汇总表中按存货、仓库、货位进行区间条件的查询,并按明细及汇总小计在一张表上。问题原因:收发存汇总表暂不考虑按货位查询.解决方案:如果不需要按收发类别、金额等查询,可以考虑查询货位汇总表,可以在Rpt_FltDEF表中找到货位汇总表的过滤条件将仓库改为区间条件,具体可参照如下脚本进行修改:UPdateRpt_FltDEFsetIsSingle=2WHEREID=(selectIDfromRpt_GlbDEFwherename=’货位汇总表’)andnote=’仓库’;另外在收发存汇总表“格式”中选择存货、仓库、货位作为分组小计的条件。
用友u812报价用友u812报价:QQ
财务会计 1-及以上站点: ([点数]-1)*6000元
总账 13000元
应收管理 7800元
应付管理 7800元
固定资产 7000元
UFO报表 5600元
费用预算 30000元
网上银行 20000元
出纳管理 5000元
医药费用管理 59800元
网上报销 1-及以上站点: ([点数]-1)*元
管理会计 1-及以上站点: ([点数]-1)*23000元 资金管理 62800元
成本管理 69000元
标准成本 42800元
项目成本 48800元
成本分项管理 49800元
预算管理-企 1-及以上站点: ([点数]-1)*元
供应链 1-及以上站点: ([点数]-1)*11000元 采购管理 16800元
销售管理 16800元
库存管理 16800元
存货核算 16800元
合同管理 32000元
售前分析 25800元
质量管理 32000元
委外管理 26800元
GSP质量管理 42800元
进口管理 29800元
出口管理 29800元
VMI管理 34800元
序列号 15800元
部门用料计划 35800元
进程管理 45000元
服装行业样品管理 49800元
服装行业销售业务 62000元
服装行业采购委外业务 18000元
服装行业库存业务 46000元
按质计价 49800元
质量管理-流程 58000元
售后服务 35800元
品控报表 12800元
采购询报价管理 11800元
借用归还 12800元
农户收购 62800元
运输管理 58000元
寄售 29800元
服装行业二维表单 9600元
电商订单中心 69600元
库存条码—PC版 42800元
库存条码-无线版 1-及以上站点: ([点数]-1)*元
GMP基础应用 42800元
会员管理 39800元
生产制造 1-及以上站点: ([点数]-1)*21600元 物料清单 36000元
主生产计划 47800元
需求规划 47800元
产能管理 47800元
生产订单 47800元
车间管理 62800元
设备管理 48800元
工程变更管理 48800元
工序委外管理 35800元
服装行业车间管理 56000元
服装行业生产计划通知 86000元
服装行业计件工资 38000元
有限排产 200000元
有限排产模具算法 100000元
模具管理 79800元
生产用料分摊 32800元
物料重计 39800元
LED分光分选 39800元
生产线日计划 29800元
GMP管理 150000元
人力资源 1-及以上站点: ([点数]-1)*9600元 人事管理 12800元
人事合同管理 12800元
薪资管理 12800元
计件工资 22000元
集体计件 22000元
保险福利管理 13800元
考勤休假管理 43800元
招聘管理 22000元
培训管理 22000元
员工自助 1-30站点: 22000元
31-及以上站点: ([点数]-30)*500+22000元
经理自助 1-10站点: 20000元
11-及以上站点: ([点数]-10)*800+20000元
绩效管理 1-及以上站点: ([点数]-1)*元
集团管理 1-及以上站点: ([点数]-1)*21000元 集团财务 56000元
合并报表 56000元
结算中心 56000元
预算管理-集 90000元
网上结算 1-及以上站点: ([点数]-1)*元
内部审计 1-及以上站点: ([点数]-1)*元
CRM营销管理 1-及以上站点: ([点数]-1)*元
CRM服务管理 1-及以上站点: ([点数]-1)*元
呼叫中心-坐席端 1-及以上站点: ([点数]-1)*元
呼叫中心集成 0元
PDM-Professional7.x 1-760站点: 0元
PDM包 5-及以上站点: ([点数]-1)*13000元
基础功能包 30000元
文档管理 20000元
零部件管理 20000元
产品结构管理 30000元
变更管理 40000元
PLM项目管理 60000元
产品工艺管理 60000元
军工行业插件 150000元
AutoCAD集成 1-及以上站点: ([点数]-1)*元
CAXA集成 1-及以上站点: ([点数]-1)*元
SolidWorks集成 1-及以上站点: ([点数]-1)*元
CATIA集成 1-及以上站点: ([点数]-1)*元
SolidEdge集成 1-及以上站点: ([点数]-1)*元
Pro/E集成 1-及以上站点: ([点数]-1)*元
UG集成 1-及以上站点: ([点数]-1)*元
Inventor集成 1-及以上站点: ([点数]-1)*元
Protel集成 1-及以上站点: ([点数]-1)*元
PADS集成 1-及以上站点: ([点数]-1)*元
Project集成 1-及以上站点: [点数]*元
CAD集成平台 30000元
对应版本:用友U8.50sp对应产品线:财务系统对应模块:固定资产模块问题现象:U850SP版固定资产所有账簿打印时报50错误,预览无任何反应。问题原因:自定义纸张太小。解决方案:改打印设置后正常。
对应版本:用友U其他对应产品线:供应链对应模块:采购管理模块问题现象:采购系统数据每到月中或月末的时候,采购入库的单价会改变,与当初录入时单价对不上,有当时打印单为据每月都会发生。问题原因:经检查发现该数据是采购入库单当月做结算处理,暂估价被改写为结算价格。流程如此该数据正确无误。解决方案:流程如此该数据正确无误。
项目管理专属要素汇总表中无法取数问题项目管理专属要素汇总表中无法取数问题
问题现象:项目管理专属要素汇总表中无法取数: 2005 年 1 月份进入 U852 “管理会计”-“项目管理”模块中,进入“日常操作”-“单据处理”界面中填制一张专属要素单后。经保存、审核后,在专属要素汇总表中经“取数”仍无法看见刚才所填制的单据。
问题版本: U8
问题模块:项目管理
问题原因:项目要素设置中,专属要素的“要素取值公式”定义有误,如: XMZSYS("97","001","14","200","2004"," 月 ") ,帐套、年度参数要与实际的帐套号、当前年度一致。
解决方案:将专属要素的“要素取值公式”改正过来即可,如将“ XMZSYS("97","001","14","200","2004"," 月 ") ”改为 XMZSYS("97","001","14","206",," 月 ") ,在修改后的公式中将具体的年度常量参数缺省为空值即可,为空系统缺省取当前年度的数据,否则以后年转到新年度后系统还回从公式中定义的指定年度取数。
用友U8 存货核算的凭证列表中(2004年)选四月份的凭证,显示出来的有、10月份的部分凭证,请问这是什么问题引起的,该如何处理?用友U8 存货核算的凭证列表中(2004年)选四月份的凭证,显示出来的有、10月份的部分凭证,请问这是什么问题引起的,该如何处理?
问题原因:去年结转过来的凭证凭证线索号与今年凭证上的凭证线索号重复。
解决方法:请做好数据备份,然后将gl_accvouch表上会计期间=0或者21的记录外部凭证线索号字段上的内容清空。
做销售普通发票时,选择发货单生成,点击显示后,提示列名无效.新增操作员则可以。做销售普通发票时,选择发货单生成,点击显示后,提示列名无效.新增操作员则可以。
删除AA_ColumnSet表中保存的相关操作员的设置的纪录。软件自动回到初始设置界面。重新急性设置栏目即可。
利息收入的核算 利息收入的核算
&&&&日,收到某开户银行转来的结息通知单,利息金额为3000元。经计算其中生产自救周转金的利息为200元。&&&&借:银行存款——收入户&&&&&&&&&&&&&&&3000&&&&&&贷:利息收入——××开户银行&&&&&&&2800&&&&&&&&&&生产自救周转金&&&&&&&&&&&&&&&&&200
明细账如何查询_怎么查询明细账明细账如何查询_怎么查询明细账
1、明细账如何查询,怎么查询明细账总账→账表→科目账→明细账→选择科目(若不选科目时,可查询所有科目)→选择月份→选包含未记账凭证→确认完成所需查询2、多栏账查询A、定义多栏账总账→账表→科目账→多栏账→增加→选择核算科目→修改多栏账名称(不修改也可)→点自动编制→将分析方式的金额分析双击改为余额分析→确定→完成多栏账的定义B、查询多栏账总账→账表→科目账→多栏账→选择多栏账名称→点查询→选择月份→选包含未记账凭证→确认→完成所需查询3、往来账查询往来管理→选择查询的账表→选择科目→选择月份→确定即可完成查询4、现金银行查询现金银行→选择日记账(现金、银行存款)→选择科目→选择月份→确定→完成查询5、其他账表的查询根据账表的性质查询,方法大同小异
现金流量表中,本月数怎么会没有数值呢现金流量表中,本月数怎么会没有数值呢
现金流量表也分,年报,半年报,季报,月报。一般公司都是只报年报和半年报,大型企业,会要求编制季度或者月度现金流量表。  现金流量表分为主表和附表(即补充资料)两大部分。主表的各项目金额实际上就是每笔现金流入、流出的归属?而附表的各项目金额则是相应会计账户的当期发生额或期末与期初余额的差额。附表是现金流量表中不可或缺的一部分。一般情况下?附表项目可以直接取相应会计账户的发生额或余额。1、作凭证时是不是同时设置了现金流量2、选择报表后,要做数据和格式的转换,再变更报表时间
对应版本:用友U其他对应产品线:其他对应模块:其他模块问题现象:安装数据库时提示:以前的某个程序安装以在安装的计算机上创建挂起操作,安装程序之前必须先重起计算机。无论怎么重启计算机,一直弹出这个对话框。问题原因:注册表的有写入,删除就好。解决方案:打开注册表KEY_LOCAL_MACHINE--SYSTEM--ControlSet001--Control--SessionManager--PendingFileRenameOptions--把这个键值删除
对应版本:用友U8.52对应产品线:财务系统对应模块:固定资产模块问题现象:点击折旧分配表,提示不是折旧汇总月或折旧后做过修改问题原因:数据库中的accinformation表字段cname的值有问题解决方案:提供语句:updateaccinformationsetcvalue=’true’wherecname=’bNeedRefreshDeprVoucher’
1、2、3、4、5、6、7、8、9、10、
新增银行科目如何设置流量新增银行科目如何设置流量版本:U810问题现象:新增银行科目无法录入流量解决方法:在基础设置--财务--会计科目--编辑--指定科目,现金流量科目
新增银行科目如何设置流量新增银行科目如何设置流量版本:U810问题现象:新增银行科目无法录入流量解决方法:在基础设置--财务--会计科目--编辑--指定科目,现金流量科目
用友ERP-U8财务软件进行年度数据结转的操作流程用友ERP-U8财务软件进行年度数据结转的操作流程 & & & &用友ERP-U8财务软件进行年度数据结转的操作流程在做年度数据结转操作前请务必一定要做好数据备份工作!软件数据备份步骤如下:1. 进入系统管理,点击 系统 下 注册 ,以软件系统管理员 admin 进行注册。2.点击 帐套 菜单下的 输出 ,并选择所要备份的相应帐套。3.压缩完进程后,选择数据备份的存放路径,然后点击确定,提示备份完毕!然后做年度数据结转工作之前,对所使用的账套数据中已启用的相关模块必须进行本年度12月份的记账和结账工作,并检查期末余额是否相符、正确。一、单独运行 系统管理 ,运行时须注意:1、如为单击版,则在本机上运行 系统管理 :具体步骤为:点击 开始 --- 程序 --- --- 系统服务 --- 系统管理 即可。2、如为网络版,则必须在服务器上运行 系统管理 而不能在工作站上运行。二、结转具体步骤:1、建新年年度帐。在 系统管理 中以 帐套主管 身份注册,选择所用帐套。2、注册后 年度帐 菜单成亮色,选择 年度帐 菜单中的 建立 子菜单建立新年度的年度帐套。3、建好新年度帐后 注销 系统,然后在 系统管理 中再以 帐套主管 身份注册,选择所用帐套。4、确定后,选择 年度帐 菜单中的 结转上年数据 子菜单,再根据所用帐套的模块情况,选择下级菜单进行各模块的年度数据的结转,如起用了多个模块,则按先后顺序重复本步骤进行结转既可。三、结转时注意的事项。1.建立新年度帐后,你可以进行供销链产品、、固定资产、工资系统的结转上年数据的工作,这几个系统的结转不分先后顺序。2.工资系统在12月份不需进行月末结帐,直接建下年度帐进行年度数据的结转工作即可。3.如果你同时使用了采购系统、销售系统和应收应付系统,那么只有在供销链产品执行完结转上年数据后,应收应付系统才能执行;如果只使用了应收应付系统而没有使用购销链系统,则可以根据需要直接执行应收应付系统的结转。4.如果你在使用成本管理系统时,使用了工资系统、固定资产系统、供销链系统,那么只有在工资系统、固定资产系统、供销链产品执行完结转上年数据后,才能执行结转;否则可以根据需要直接执行成本管理系统的结转。6、 如果你在使用总帐系统时,使用了工资系统、、供销链系统、应收应付系统、资金管理系统、成本管理系统,那么只有这些系统执行完结转上年数据后,最后才能执行总帐系统结转;否则可以根据需要直接执行总帐系统的结转工作。
MRP超量规划供应问题现象:设置产品为ATO选项类存货,其子件全部为PE属性存货,进行生产订单手工录入,订单类型为“非标准”订单,录入后进行子件修改,将其选项部分存货手工增加,保存订单,进行MRP运算,其产品子件库存很多,但是系统运算出对此材料的需求。解决方案:1、将此空值字段改为02、请将客户环境安装下载中心最新的861hotfix(3月17日),并利用自动更新工具更新到hotfix4。3、重新进行MRP计算
| Copyright &
&All Rights Reserved 精彩会计生活 &北京天龙瑞德&版权所有 & 北京海淀上地十街辉煌国际大厦3-609&总机:010- & 售后:5221人阅读
数据库(12)
最近SQL语句写得比较多,也发现了自己的很多不足之处。在此先写一篇关于SQL语句的在线笔记,方便大家学习和后面的工作,SQL Server、MySQL、Oracle基本语法都类似,接下来我需要阅读《SQL Server性能优化与管理的艺术》。
最后,希望这篇文章对你有所帮助吧!重点是select语句的用法。目录如下:
一.创建数据库和表
1.创建数据库2.创建表并设置主键3.插入数据
二.select查询操作
1.通过日期计算年龄2.获取某列所有不同的属性值 group by3.查询字符串匹配like和多值属性判断in4.查询输出某列属性中某个特定值5.子查询统计不同阶段学生总数6.使用子查询按行动态输出学院相关信息7.Oracle数据库null设置成自定义值的方法8.Oracle计算百分比trunc方法9.Oracle查询除法/运算10.Oracle统计某个属性逗号分隔值的个数11.Oracle使用CASE WHEN替代子查询12.Oracle子查询中使用a.* 统计所有字段13.Oracle使用decode函数防止除法分母为0
一. 创建数据库和表
1.创建数据库
--创建数据库
create database StudentMS
--使用数据库
use StudentMS
--删除数据库
--drop database StudentMS
2.创建表并设置主键(外键类似)
--创建学生表 (属性:姓名、学号(pk)、学院、出生日期、性别、籍贯)
create table xs
name varchar(10) not null,
id varchar(10) not null,
xy varchar(10),
birthday datetime,
xb char(2),
jg varchar(8)
--创建学生表主键:学号
alter table xs
add constraint
pk_xs primary key(id)
--创建表学生表外键:系代号 此表中xdh已被省略
alter table xs
add constraint
fk_xs foreign key(xdh)
references xb (xdh)
3.插入数据
insert into xs
(id, name, xb, birthday, xy, jg)
values(';, '刘备', '男', '', '软件学院', '河北省'); 总共插入10个学生的数据,其中如birthday可为null,如下:
二. select查询操作
1.通过日期计算年龄
通过 (当前日期-出生日期) 两种方法:
& & & & 1).&year(getdate()) - year(birthday)
& & & & 2). datediff(YY, birthday, getdate())&
代码如下:
select id as 学号, name as 姓名, year(getdate())-year(birthday) as 年龄, birthday as 出生日期
select id as 学号, name as 姓名, datediff(YY,birthday,getdate()) as 年龄, birthday as 出生日期
输出如下所示,后面也可以计算不同年龄段的人数:
注意:Oracle会报错“ORA-00904: 'DATEDIFF' invalid identifier”, 它的方法如下:
& & & & &&Trunc(MONTHS_BETWEEN(SYSDATE, BIRTH_DATE)/12)
& & & & &&函数Trunc在这里对带有小数位数的数字取整数部分,SYSDATE为oracle的获取当前日期的函数,BIRTH_DATE为我自己的数据库表中存储生日日期的字段。
& & & & & 判断年份等于当前年份方法:YEAR=to_char(sysdate, 'yyyy')
& & & & & 如果BIRTH_DATE是字符串类型,则计算年龄语句如下:
& & & & &&Trunc(MONTHS_BETWEEN(SYSDATE, to_date(BIRTH_DATE,'yyyy-mm-dd'))/12)
2.获取某列所有不同的属性值 group by
它的功能包括:获取学院列所有学院信息,也可以用来统计所有学生同名的人数。
--方法1:group by 列分组
--方法2:列出不同的值
select输出结果:
统计不同学院的人数信息:
select xy as 学院, count(*) as 总人数
PS:如果需要排序可以添加order by xy,而统计重名学生可通过having count(*)&1。
3.查询字符串匹配like和多值属性判断in
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式:
--匹配姓名以&黄&开头的学生
select * from xs where name like '黄%';
--匹配学院包含&计算机&的学生
select * from xs where xy like '%计算机%';
--匹配姓名以&尚香&结尾的学生
select * from xs where name like '%尚香';输出结果:
LIKE匹配某个字段的变量的方法:DL_BHXNZYMC like '%' || ZY_NAME ||'%'
select T_WSTB_DLPYJBQKB.DL_BHXNZYMC, ZY_NAME
from T_WSTB_ZYJBQK, T_WSTB_DLPYJBQKB
where T_WSTB_DLPYJBQKB.DL_BHXNZYMC like '%' || ZY_NAME ||'%'输出如下所示,也可以某个字段包含的个数:
IN 操作符允许我们在 WHERE 子句中规定多个值,换种说法就是替换or:
select * from xs where jg in ('河北省','河南省');输出结果:
4.查询输出某列属性中的某个特定值
比如我希望输出软件学院这个值,可以使用group by分组再定义这个值。其缺点是这个值必需是定义存在的,当然如果C#或JAVA可以定义变量连接这个值。
select xy as 学院名称 from xs where xy='软件学院'输出结果:
5.子查询统计不同阶段学生总数
使用子查询统计不同学院总人数、不同性别总人数和河北/河南学生总人数。
--子查询统计人数
select a.a_num as 软院人数, b.b_num as 计院人数, c.c_num as 自动化人数,
d.d_num as 男生人数, e.e_num as 女生人数, f.f_num as 河北河南人数
(select count(*) as a_num from xs where xy='软件学院') a,
(select count(*) as b_num from xs where xy='计算机学院') b,
(select count(*) as c_num from xs where xy='自动化学院') c,
(select count(*) as d_num from xs where xb='男') d,
(select count(*) as e_num from xs where xb='女') e,
(select count(*) as f_num from xs where jg in ('河北省','河南省'))输出结果:
PS:当时需要设计一条SQL,统计各个学院的教师总数、高级职称教师总数、35岁以下青年教师总数、教授教师总数;而且输出是一行,每个学院共5个值,例如:
上面这种显示方法非常局限,不能实现动态的查询,如果增加新的学院,你SQL语句中 where xy='软件学院' 需要相应修改,如果是连接前端建议使用逗号连接查询。当然,SQL语句更理想的输出如下:(参考6)
6.使用子查询按行动态输出学院相关信息
获取每个学院总人数、男生总人数、小于等于25岁的总人数和生源地河北河南人数。
这种方法通常是多个表之间的夸表查询,首先创建一个学院表:学院名称和学院代码。
--创建学院表
create table table_xy
name varchar(10) not null,
id varchar(10) not null
--插入数据
insert into table_xy(id, name) values('001', '软件学院');
insert into table_xy(id, name) values('002', '计算机学院');
insert into table_xy(id, name) values('003', '自动化学院');
insert into table_xy(id, name) values('004', '法学院');输出如下,这里插入一个法学院,它的统计结果都为空:
然后,子查询SQL语句如下:
select distinct name as 学院名称,
(select count(*) from xs where xs.xy=table_xy.name) as 总人数,
(select count(*) from xs where xs.xy=table_xy.name and xs.xb='男') as 男生总数,
(select count(*) from xs where xs.xy=table_xy.name and datediff(YY,birthday,getdate())&=25) as 二十五岁人数,
(select count(*) from xs where
xs.xy=table_xy.name and xs.jg in ('河北省','河南省')) as 河北河南生源地
from table_输出结果:
7.Oracle数据库null设置成自定义值的方法
方法包括主要有两个,参考:
1).&nvl(expr1, expr2)
若EXPR1是NULL,則返回EXPR2,否則返回EXPR1。nvl(person_name,“未知”)表示若person_name字段值为空时返回“未知”,如不为空则返回person_name的字段值。通过这个函数可以定制null的排序位置。 |
2).&decode(DEPARTMENT_NAME, null, 'NULL', DEPARTMENT_NAME)
如果部门名称在表中值为null,则用NULL替代,也可设置为&空&各种自定义字符串。decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一特定值。
如decode(person_name,null,“未知”, person_name)表示当person_name为空时返回“未知”,如不为空则返回person_name的字段值。&
PS:而SQL Server中没有函数decode,但是其实质可以通过case when来实现和替代。
8.Oracle计算百分比trunc方法
核心SQL语句如下:to_char(trunc(NUM/ALL_NUM*100, 2)) || '%
其中NUM除以ALL_NUM总数,并且保留两位有效数字,如下图所示:
9.Oracle查询除法/运算
主要语句:select a/
如:1.0*男生人数/ 人总数*100,使用trunc主要是小数点保留两位有效数字。
如果出现错误:[Err]ORA-01476: divisor is equal to zero,可修改为:select decode(b,0,0,a/b) from c。
select t1.ZFJGSL as 数量,
trunc( 1.0 * (select ITEM_VALUE from T_WSTB_YJBKBYSJYQK
where RECORD_YEAR=(to_char(sysdate, 'yyyy')-2) and FIRST_NUM='2' and SECOND_NUM='2') /
(select ITEM_VALUE from T_WSTB_YJBKBYSJYQK
where RECORD_YEAR=(to_char(sysdate, 'yyyy')-2) and FIRST_NUM='2' and SECOND_NUM='1') * 100,
2) as 比例
(select ITEM_VALUE as ZFJGSL from T_WSTB_YJBKBYSJYQK
where RECORD_YEAR=(to_char(sysdate, 'yyyy')-2) and FIRST_NUM='2' and SECOND_NUM='2') t1;输出如下所示:
10.Oracle统计某个属性逗号分隔值的个数
如下图所示,学科大类中包括各个学科专业名称,通过逗号分隔,如何统计个数呢?
SQL代码如下,Orcale使用length,其他是len函数:
select DL_NAME as num1,
length(DL_BHXNZYMC)-length(replace(DL_BHXNZYMC,',',''))+1 as num2
from T_WSTB_DLPYJBQKB运行结果如下所示:
11.Oracle使用CASE WHEN替代子查询
前面第5步中使用子查询进行统计:
--子查询统计人数
select a.a_num as 软院人数, b.b_num as 计院人数, c.c_num as 自动化人数,
d.d_num as 男生人数, e.e_num as 女生人数, f.f_num as 河北河南人数
(select count(*) as a_num from xs where xy='软件学院') a,
(select count(*) as b_num from xs where xy='计算机学院') b,
(select count(*) as c_num from xs where xy='自动化学院') c,
(select count(*) as d_num from xs where xb='男') d,
(select count(*) as e_num from xs where xb='女') e,
(select count(*) as f_num from xs where jg in ('河北省','河南省'))输出结果:
在Oracle中如果想减少代码量或者不适用子查询,可以CASE WHEN语句进行替代。
SELECT COUNT(*) AS 总人数,
COUNT(CASE WHEN HIGHEST_DEGREE='博士'THEN 1 END) AS 博士人数,
COUNT(CASE WHEN HIGHEST_DEGREE='硕士'THEN 1 END) AS 硕士人数,
COUNT(*)-COUNT(CASE WHEN HIGHEST_DEGREE='博士'THEN 1 END)-COUNT(CASE WHEN HIGHEST_DEGREE='硕士'THEN 1 END) AS 其他学历
FROM T_WSTB_FULL_TIME_TEACHER
WHERE IS_FOREGOER='是' and YEAR_START=to_char(sysdate,'yyyy')-1;这段SQL语句表示求教师表IS_FOREGOER学科带头人且入校年份为2015年的总人数、博士人数、硕士人数和其他学历的人数。
COUNT(CASE WHEN HIGHEST_DEGREE='博士' THEN 1 END) AS NUM2
表示当最高学历HIGHEST_DEGREE字段为'博士'时,统计数量加1。
当然如果需要计算学院各个班级的总人口,可以采用使用下面的SQL:
COUNT(CASE WHEN DW_NAME='软件学院' THEN NUM_STU END) AS NUM2
也可以使用提到的CASE防止除法计算分母为0,ZS总数、SHSJ社会实践人数。即:
round((case when ZS!=0 then SHSJ/ZS else 0 end),3) as bl
输出如下图所示:
12.Oracle子查询中使用a.* 统计所有字段
前面5的子查询需要设置不同的字段,而这里是使用a.*统计所有字段,其中a表示子查询重命名的结果,给人以很清新的感觉,虽然有点华而不实吧!
PS: 这部分代码是我的学生XW写的表2-6,非常不错,感觉自愧不如,学习之~
SELECT a.*, b.*
(SELECT SUM(DOMESTIC_TRAIN) + SUM(OVERSEA_TRAIN_TOTAL) AS zj,
SUM(DEGREE_PHD) AS qzgdbsx,
SUM(DOMESTIC_TRAIN) AS jnjxrcs,
SUM(OVERSEA_TRAIN_TOTAL) AS jwjxrcs
FROM TRAIN_INTERFLOW
where YEAR_START=to_char(sysdate,'yyyy')-2
(SELECT SUM(PARTICIPANT_NUMBER) AS cyjglxkrcs
FROM EDU_REVOLUTION
where YEAR_START=to_char(sysdate,'yyyy')-2
)其中表对应各学院的信息,但希望你能学习这种SQL语句的格式。
输出如下图所示:
13.Oracle使用decode函数防止除法分母为0
Oracle中通常需要统计如男生占全班总人数比例等用法,此时如果分母为0,它会报错&[Err] ORA-01476: divisor is equal to zero&。那怎么办呢?
解决方法:使用函数decode,当分母为0时直接返回0,否则进行除法运算。
selecta/ 修改成如下即可:select decode(b, 0, 0, a/b)
例如:decode(XF_ALL, 0, 0,trunc(XF_JZXSYJXHJ / XF_ALL * 100, 1)) as BL
下面这段代码是涉及到子查询的除法运算所占百分比:
select decode
(select sum(BYSJY_BYS_NUM) from T_WSTB_YJBKBYSFZYBYJYQK t
where t.BYSJY_XNZY_CODE=T_WSTB_ZYJBQK.XNZY_CODE),
(select sum(BYSJY_JY_NUM) from T_WSTB_YJBKBYSFZYBYJYQK t
where t.BYSJY_XNZY_CODE=T_WSTB_ZYJBQK.XNZY_CODE) * 1.0
(select sum(BYSJY_BYS_NUM) from T_WSTB_YJBKBYSFZYBYJYQK t
where t.BYSJY_XNZY_CODE=T_WSTB_ZYJBQK.XNZY_CODE)
) * 100 as JYL
from T_WSTB_ZYJBQK当然也可以使用前面11提到的CASE防止分母为0,即:
round((case when ZS!=0 then SHSJ/ZS else 0 end),3) as bl
最后希望文章对你有所帮助,这是一篇我的在线笔记,同时后面结合自己实际项目和SQL性能优化,将分享一些更为专业的文章~
最近真的太忙了,做自己的毕设、学校的项目、帮别人毕设或项目解惑,虽然累,但感觉还是非常充实的;买了本《邓肯专·永不退场》,有机会再品味吧!同时每天刀两把,周末搞个小火锅,这也是生活啊!(*^__^*) 嘻嘻.......
(By:Eastmount
深夜3点 &&&)
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1309255次
积分:15463
积分:15463
排名:第645名
原创:244篇
转载:10篇
评论:1156条
作者:杨秀璋
学历:本科-北京理工大学
&&&&&&&&&&&硕士-北京理工大学
现任教于贵财财经大学信息学院
简介:自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授给自己的学生,帮助更多陌生人。
贵州纵美路迢迢,
为负劳心此一遭。
收得破书三四本,
也堪将去教尔曹。
娜美人生,醉美生活。
他和她经历风雨,慢慢变老。
文章:13篇
阅读:52130
文章:12篇
阅读:40303
文章:35篇
阅读:233855
文章:29篇
阅读:218257
文章:18篇
阅读:121092
文章:12篇
阅读:52980
文章:19篇
阅读:130024
文章:16篇
阅读:66574
文章:20篇
阅读:100055
文章:13篇
阅读:75051
(1)(2)(4)(11)(2)(1)(2)(10)(9)(5)(3)(3)(2)(3)(4)(2)(3)(5)(5)(6)(11)(20)(6)(3)(5)(13)(5)(7)(7)(5)(7)(8)(9)(3)(2)(1)(1)(6)(3)(6)(5)(7)(1)(1)(1)(10)(4)(6)(3)(4)(2)(2)
【算法知识】
【C# .NET】
【游戏开发】
【Android】
【正能量&导师】
【图形&视频处理】
【各种知识】
【数据挖掘】
【.NET MF&嵌入式】
【架构&模式】
【操作系统】
【IOS开发】
【CSDN扫地僧】

我要回帖

更多关于 动不动就删微信的女人 的文章

 

随机推荐