文档库 最新最全的文档下载
当前位置:文档库 › oracle中union和minus的用法

oracle中union和minus的用法

oracle中union和minus的用法
oracle中union和minus的用法

oracle中union和minus的用法

在oracle数据库开发中少不了sql语句,这是必须的!sql中有这样一个对集合的操作,他就是union和minus(其实还有intersect)。

?UNION是将两个或者两个以上的搜索结果集合并在一起!这个合并是有条件滴!记录的类型要匹配啦,记录的列数要一样啦!看看下面简单的例子:

?有的朋友会说为什么要用union呢,直接用txt3 in ('INDUSTRY','INDU STRY2')不就可以了么,确实是可以的。但是如果是两个不同的表而且没

什么关联的话必须要u n i o n了。

?有时候用in可能会很慢,如果改用union就效率就会快很多。因为in 并不是最优的选择,碰上大表和复杂的查询的时候用下union可以提速不少!

?UNION有两种用法,一种是UNION,另一种是UNION ALL。前者有distin

c t的功能,就是去掉重复的记录,而后者不会去重。

看下区别吧!

MINUS和UNION相反,他是减去一部分结果集。同理他可以用not in来代替,但是有时候碰上大表和复杂的查询效率还是没minus好。

Excel中COUNTIF函数的使用方法汇总(新)

Excel中COUNTIF函数的使用方法汇总 一、求各种类型单元格的个数 (1) 求真空单元格单个数: =COUNTIF(data,"=") (2) 真空+假空单元格个数: =COUNTIF(data,"") 相当于countblank()函数 (3) 非真空单元格个数: =COUNTIF(data,"<>") 相当于counta()函数 (4) 文本型单元格个数: =COUNTIF(data,"*") 假空单元格也是文本型单元格 (5) 区域内所有单元格个数: =COUNTIF(data,"<>""") (6) 逻辑值为TRUE的单元格数量=COUNTIF(data,TRUE) 小说明: EXCEL单元格内数据主要有以下几类:数值型,文本型,逻辑型,错误值型。其中时间类型也是一种特殊的数值。文本类型的数字是文本型。 空单元格:指什么内容也没有的单元格,姑且称之为真空。 假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。 date指单元格区域,该参数不能是数组 二、求><=某个值的单元格个数 (1) 大于50 =COUNTIF(data,">50") (2) 等于50 =COUNTIF(data,50) (3) 小于50 =COUNTIF(data,"<50") (4) 大于或等于50 =COUNTIF(data,">=50") (5) 小于或等于50 =COUNTIF(data,"<=50") ¬

(6) 大于E5单元格的值=COUNTIF(data,">"&$E$5) (7) 等于E5单元格的值=COUNTIF(data,$E$5) (8) 小于E5单元格的值=COUNTIF(data,"<"&$E$5) (9) 大于或等于E5单元格的值=COUNTIF(data,">="&$E$5) (10) 小于或等于E5单元格的值=COUNTIF(data,"<="&$E$5) 三、等于或包含某N个特定字符的单元格个数 (1) 两个字符=COUNTIF(data,"??") (2) 两个字符并且第2个是B =COUNTIF(data,"?B") (3) 包含B =COUNTIF(data,"*B*") (4) 第2个字符是B =COUNTIF(data,"?B*") (5) 等于“你好”=COUNTIF(data,"你好") (6) 包含D3单元格的内容=COUNTIF(data,"*"&D3&"*") (7) 第2字是D3单元格的内容=COUNTIF(data,"?"&D3&"*") 注:countif()函数对英文字母不区分大小写,通配符只对文本有效 四、两个条件求个数 (1) >10并且<=15 =SUM(COUNTIF(data,">"&{10,15})*{1,-1}) (2) >=10并且<15 =SUM(COUNTIF(data,">="&{10,15})*{1,-1}) (3) >=10并且<=15 =SUM(COUNTIF(data,{">=10",">15"})*{1,-1}) (4) >10并且<15 =SUM(COUNTIF(data,{">10",">=15"})*{1,-1}) 注:一般多条件计数使用SUMPRODUCT函数,以上方法较少使用,仅供参考。补充:三个区域计数:

详解Oracle数据库中DUAL表的使用

详解Oracle数据库中DUAL表的使用 1、DUAL表的用途 Dual 是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select 语句块中 --查看当前连接用户 SQL> select user from dual; USER ------------------------------ SYSTEM --查看当前日期、时间 SQL> select sysdate from dual; SYSDATE ----------- 2007-1-24 1 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YYYY-MM-DDHH2 ------------------------------ 2007-01-24 15:02:47 --当作计算器用 SQL> select 1+2 from dual; 1+2 ---------- 3 --查看序列值 SQL> create sequence aaa increment by 1 start with 1; SQL> select aaa.nextval from dual; NEXTVAL ---------- 1 SQL> select aaa.currval from dual; CURRVAL ---------- 1

2、关于DUAL表的测试与分析 DUAL就是个一行一列的表,如果你往里执行insert、delete、truncate操作,就会导致很多程序出问题。结果也因sql*plus、pl/sql dev等工具而异。 --查看DUAL是什么OBJECT --DUAL是属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用. SQL> select owner, object_name , object_type from dba_objects where object_name like '%DUAL%'; OWNER OBJECT_NAME OBJECT_TYPE ---------- ----------------- ------------------ SYS DUAL TABLE PUBLIC DUAL SYNONYM --查看表结构,只有一个字段DUMMY,为VARCHAR2(1)型 SQL> desc dual Name Type Nullable Default Comments ----- ----------- -------- ------- -------- DUMMY VARCHAR2(1) Y --DUAL表的结构: create table SYS.DUAL ( DUMMY VARCHAR2(1) ) tablespace SYSTEM pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 16K next 16K minextents 1 maxextents 505 pctincrease 50 ); /*

countif函数的使用方法汇总

countif函数的使用方法汇总 一、求各种类型单元格的个数 (1) 求真空单元格单个数: =COUNTIF(data,"=") (2) 真空+假空单元格个数: =COUNTIF(data,"") 相当于countblank()函数 (3) 非真空单元格个数: =COUNTIF(data,"<>") 相当于counta()函数 (4) 文本型单元格个数: =COUNTIF(data,"*") 假空单元格也是文本型单元格 (5) 区域内所有单元格个数: =COUNTIF(data,"<>""") (6) 逻辑值为TRUE的单元格数量=COUNTIF(data,TRUE) 小说明: EXCEL单元格内数据主要有以下几类:数值型,文本型,逻辑型,错误值型。其中时间类型也是一种特殊的数值。文本类型的数字是文本型。 空单元格:指什么内容也没有的单元格,姑且称之为真空。 假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。 date指单元格区域,该参数不能是数组 二、求><=某个值的单元格个数 (1)大于50 =COUNTIF(data,">50") (2)等于50 =COUNTIF(data,50) (3)小于50 =COUNTIF(data,"<50") (4)大于或等于50 =COUNTIF(data,">=50") (5)小于或等于50 =COUNTIF(data,"<=50") ¬ (6)大于E5单元格的值=COUNTIF(data,">"&$E$5) (7)等于E5单元格的值=COUNTIF(data,$E$5) (8)小于E5单元格的值=COUNTIF(data,"<"&$E$5) (9)大于或等于E5单元格的值=COUNTIF(data,">="&$E$5) (10)小于或等于E5单元格的值=COUNTIF(data,"<="&$E$5) 三、等于或包含某N个特定字符的单元格个数 (1)两个字符=COUNTIF(data,"??") (2)两个字符并且第2个是B =COUNTIF(data,"?B") (3)包含B =COUNTIF(data,"*B*") (4)第2个字符是B =COUNTIF(data,"?B*") (5)等于“你好”=COUNTIF(data,"你好") (6)包含D3单元格的内容=COUNTIF(data,"*"&D3&"*") (7)第2字是D3单元格的内容=COUNTIF(data,"?"&D3&"*") 注:countif()函数对英文字母不区分大小写,通配符只对文本有效 四、两个条件求个数 (1) >10并且<=15 =SUM(COUNTIF(data,">"&{10,15})*{1,-1}) (2) >=10并且<15 =SUM(COUNTIF(data,">="&{10,15})*{1,-1}) (3) >=10并且<=15 =SUM(COUNTIF(data,{">=10",">15"})*{1,-1}) (4) >10并且<15 =SUM(COUNTIF(data,{">10",">=15"})*{1,-1}) 注:一般多条件计数使用SUMPRODUCT函数,以上方法较少使用,仅供参考。

Oracle中分析函数用法小结

Oracle中分析函数用法小结 一.分析函数适用场景: ○1需要对同样的数据进行不同级别的聚合操作 ○2需要在表内将多条数据和同一条数据进行多次的比较 ○3需要在排序完的结果集上进行额外的过滤操作 二.分析函数语法: FUNCTION_NAME(,...) OVER () 例: sum(sal) over (partition by deptno order by ename) new_alias sum就是函数名 (sal)是分析函数的参数,每个函数有0~3个参数,参数可以是表达式,例如:sum(sal+comm) over 是一个关键字,用于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数 partition by deptno 是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一个单一的大区 order by ename 是可选的order by 子句,有些函数需要它,有些则不需要.依靠已排序数据的那些函数,如:用于访问结果集中前一行和后一行的LAG和LEAD,必须使用,其它函数,如AVG,则不需要.在使用了任何排序的开窗函数时,该子句是强制性的,它指定了在计算分析函数时一组内的数据是如何排序的. 1)FUNCTION子句 ORACLE提供了26个分析函数,按功能分5类 分析函数分类 等级(ranking)函数:用于寻找前N种查询 开窗(windowing)函数:用于计算不同的累计,如SUM,COUNT,AVG,MIN,MAX等,作用于数据的一个窗口上 例: sum(t.sal) over (order by t.deptno,t.ename) running_total, sum(t.sal) over (partition by t.deptno order by t.ename) department_total 制表(reporting)函数:与开窗函数同名,作用于一个分区或一组上的所有列 例: sum(t.sal) over () running_total2, sum(t.sal) over (partition by t.deptno) department_total2 制表函数与开窗函数的关键不同之处在于OVER语句上缺少一个ORDER BY子句! LAG,LEAD函数:这类函数允许在结果集中向前或向后检索值,为了避免数据的自连接,它们是非常有用的. VAR_POP,VAR_SAMP,STDEV_POPE及线性的衰减函数:计算任何未排序分区的统计值 2)PARTITION子句 按照表达式分区(就是分组),如果省略了分区子句,则全部的结果集被看作是一个单一的组 3)ORDER BY子句

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

电子表格Excel里COUNTIF函数常规用法

电子表格Excel里COUNTIF函数常规用法 (ZSA整编) 一、求各种类型单元格的个数 (1) 求真空单元格单个数: =COUNTIF(data,"=") (2) 真空+假空单元格个数: =COUNTIF(data,"") 相当于countblank()函数 (3) 非真空单元格个数: =COUNTIF(data,"<>") 相当于counta()函数 (4) 文本型单元格个数: =COUNTIF(data,"*") 假空单元格也是文本型单元格 (5) 区域内所有单元格个数: =COUNTIF(data,"<>""") (6) 逻辑值为TRUE的单元格数量 =COUNTIF(data,TRUE) 小说明: EXCEL单元格内数据主要有以下几类:数值型,文本型,逻辑型,错误值型。其中时间类型也是一种特殊的数值。文本类型的数字是文本型。 空单元格:指什么内容也没有的单元格,姑且称之为真空。 假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。 date指单元格区域,该参数不能是数组 二、求><=某个值的单元格个数 (1) 大于50 =COUNTIF(data,">50") (2) 等于50 =COUNTIF(data,50) (3) 小于50 =COUNTIF(data,"<50") (4) 大于或等于50 =COUNTIF(data,">=50")

(5) 小于或等于50 =COUNTIF(data,"<=50") (6) 大于E5单元格的值 =COUNTIF(data,">"&$E$5) (7) 等于E5单元格的值 =COUNTIF(data,$E$5) (8) 小于E5单元格的值 =COUNTIF(data,"<"&$E$5) (9) 大于或等于E5单元格的值 =COUNTIF(data,">="&$E$5) (10) 小于或等于E5单元格的值 =COUNTIF(data,"<="&$E$5) 三、等于或包含某N个特定字符的单元格个数 (1) 两个字符 =COUNTIF(data,"??") (2) 两个字符并且第2个是B =COUNTIF(data,"?B") (3) 包含 B =COUNTIF(data,"*B*") (4) 第2个字符是B =COUNTIF(data,"?B*") (5) 等于“你好” =COUNTIF(data,"你好") (6) 包含D3单元格的内容 =COUNTIF(data,"*"&D3&"*") (7) 第2字是D3单元格的内容 =COUNTIF(data,"?"&D3&"*") 注:countif()函数对英文字母不区分大小写,通配符只对文本有效 四、两个条件求个数 (1) >10并且<=15 =SUM(COUNTIF(data,">"&{10,15})*{1,-1}) (2) >=10并且<15 =SUM(COUNTIF(data,">="&{10,15})*{1,-1}) (3) >=10并且<=15 =SUM(COUNTIF(data,{">=10",">15"})*{1,-1}) (4) >10并且<15 =SUM(COUNTIF(data,{">10",">=15"})*{1,-1})

Oracle内置函数(数值型)

6.1 数值型函数 绝对值、取余、判断数值正负函数 SELECT ABS(100),ABS(-100),ABS('100') FROM DUAL; 第三个ABS('100')参数类型虽然不是数值型但是可以隐式转换成数值类型,也可以用ABS。create table SYS.DUAL ( DUMMY VARCHAR2(1 ) SELECT MOD(5,2),MOD(8/3,5),MOD(-10,6),MOD(1,0) FROM DUAL; 参数是任意类型或者可以隐式转换成数值的类型 注意:MOD(x,0)的值为x; SELECT SIGN('9'),SIGN('-9'),SIGN(0.00),SIGN(-2*'9') FROM DUAL; 三角函数 select sin(π/6) a from dual;出错,在oracle中π标示符无效 select sin(3.141592653/6) a from dual; 返回以指定数值为准整数的函数 CEIL(N) select ceil(23.45) a from dual;

FLOOR(N) select floor(23.45) a,floor(23.65) b from dual; 指数,对数函数 SQRT 该函数返回n的平方根 select sqrt(1.44) a,sqrt(256) b from dual; POWER(N2,N1) 该函数可以得到N2的N1次幂 select power(5,2) a,power(2,5) b from dual; SELECT POWER(-27,1/3) FROM DUAL;运算出错,如何计算POWER(-27,1/3)?(oracle 中不能计算) EXP(n) E的N次幂 select exp(2) a from dual; LOG(N1,N2) select log(3,9) a from dual; ROUND 四舍五入,如果,后的数不为整数,自动截取整数位 SELECT ROUND(100.23456,4),ROUND(100.23456,2.56),ROUND(155.23456,-2) FROM DUAL; SELECT TRUNC(100.23456,4),TRUNC(100.23456,2.56),TRUNC(155.23456,-2),TRUNC(15 5.23456) FROM DUAL;

Oracle常用函数及使用案例(珍藏版)

Oracle常用函数及使用案例(珍藏版) 一:sql函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char,m,n):取字符串的字串。 案例1.将所有员工的名字按小写的方式显示 select lower(ename),sal from emp; 案例2.将所有员工的名字按大写的方式显示。 select upper(ename),sal from emp; 案例3.显示正好为五个字符的的员工的姓名。 select * from emp where length(ename)=5; 案例4.显示所有员工姓名的前三个字符。 select substr(ename,1,3) from emp;//从名字的第一个字符开始取,向后取三个字符。 案例5.以首字母为大写的方式显示所有员工的姓名。 (1)首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) from emp; 案例6.以首字母为小写的方式显示所有员工的姓名。(需要有较高的灵活度,细心分析和清晰思路) (1)首字母小写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母大写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp; 案例7.函数(替换):replace(char1,search_string,replace_string); 显示所有员工的姓名,用“我要替换A”替代所有“A”。 select replace(ename,'A','我是老鼠')from emp; 案例8.以首字母为小写的方式显示所有员工的姓名。 select replace(ename,substr(ename,1,1),lower(substr(ename,1,1)))from emp; 案例9.以首字母为大写的方式显示所有员工的姓名。 Select replace(ename,substr(ename,2,length(ename)-1),lower(substr(ename,2,length(ename) -1)))from emp; 二:数学函数:(在财务中用的比较多) ronud(sal)用于四舍五默认取整; ronud(sal,1)用于四舍五留一位小数。 trunc(sal)取整,忽略小数。截去小数部分。 trunc(sal,1)截取;小数点留一位,之后的右边的省去。 trunc(sal,-1)截取;只留整数,个位数取零。 floor(sal)向下最接近取整;比如1.1值为1.

countif函数用法

Excel中countif函数用法 2008-11-22 21:37 语法 COUNTIF(range,criteria) Range 为需要计算其中满足条件的单元格数目的单元格区域。 Criteria 为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式、单元格引用或文本。例如,条件可以表示为32、"32"、">32" 、"apples" 或B4。 说明 Microsoft Excel 还提供了其他一些函数,它们可根据条件来分析数据。 若要计算基于一个文本字符串或某范围内的一个数值的总和,可使用SUMIF 工作表函数。若要使公式返回两个基于条件的值之一,例如某指定销售金额的销售红利,可使用IF 工作表函数。若要计算空或非空单元格的个数,可使用COUNTA 和COUNTBLANK 函数。示例1:通用COUNTIF 公式如果您将示例复制到空白工作表中,可能会更易于理解该示例。 A B 1 数据数据 2 apples 32 3 oranges 54 4 peaches 75 5 apples 86 公式说明(结果) =COUNTIF(A2:A5,"apples") 计算第一列中苹果所在单元格的个数(2) =COUNTIF(A2:A5,A4) 计算第一列中桃所在单元格的个数(2) =COUNTIF(A2:A5,A3)+COUNTIF(A2:A5,A2) 计算第一列中柑桔和苹果所在单元格的个数(3) =COUNTIF(B2:B5,">55") 计算第二列中值大于55 的单元格个数(2) =COUNTIF(B2:B5,"<>"&B4) 计算第二列中值不等于75 的单元格个数(2) =COUNTIF(B2:B5,">=32")-COUNTIF(B2:B5,">85") 计算第二列中值大于或等于32 且小于或等于85 的单元格个数(3) 计算80到89之间的人数 =countif(B1:B10,">=80")-countif(B1:B10,">90") 假设B1:B10为你的数据区域. 2009-11-08 12:20 Excel中能熟练地掌握函数的技巧,在水文日常工作中能达到事半功倍的效果。例如:要计算A1:An(定义:data)区域中非零的单元格的平均值,可在单元格中输入=sum(data)/countif(data, "<>0")。下面具体介绍Countif()函数的高级技巧如下:

Oracle函数详解(经典)

Oracle常用函数/过程说明主要介绍Oracle的系统函数、过程和包。 SQL常用函数: 数值函数: ABS Purpose 返回绝对值 Returns the absolute value of n. Example SELECT ABS(-15) "Absolute" FROM DUAL; Absolute ---------- 15 CEIL Purpose 取最小整数 Returns smallest integer greater than or equal to n. Example SELECT CEIL(15.7) "Ceiling" FROM DUAL;

Ceiling ---------- 16 * MOD Syntax MOD(m,n) Purpose 取余 Returns remainder of m divided by n. Returns m if n is 0. Example SELECT MOD(11,4) "Modulus" FROM DUAL; Modulus ---------- 3 * ROUND Syntax ROUND(n[,m]) Purpose 取四舍五入信息 Returns n rounded to m places right of the decimal point; if m is omitted, to 0 places. m can be negative to round off digits left of the decimal point. m must be an integer.

Count系列及Frequency函数应用技巧解读

Count函数及Frequency函数应用技巧解读! 在Excel中,如果要计数,一般情况下都使用Count系列,如Count函数,数值计数;Counta函数,非空单元格计数;Countblank函数,空单元格计数;Countif函数,单条件计数;Countifs:多条件计数。但在实际的应用中,还可以用Frequency 来计数,而且效率更高,更简单。 一、Count系列计数。 1、Count。 功能:计算区域中包含数字的单元格个数。 语法结构:=Count(值或单元格引用)。 目的:分季度统计商品的销售数。 方法: 在目标单元格中输入公式:=COUNT(C4:C10)。 解读: Count函数的参数对象为数值,及Count函数的统计结果为数值

类型的值,对其他类型的值无效! 2、Counta函数。 功能:计算区域中非空单元格的个数。 语法结构:=Counta(值或单元格引用)。 目的:计算非空单元格的个数。 方法: 在目标单元格中输入公式:=COUNTA(C4:C10)。 解读: 虽然Counta的统计结果和Count的结果相同,但Counta函数的统计对象是非空单元格。 3、Countblank函数。 功能:计算指定区域中空单元格的数量。 语法结构:=Countblank(值或单元格引用)。 目的:统计空单元格的个数。

方法: 在目标单元格中输入公式:=COUNTBLANK(C4:C10)。 4、Countif函数。 功能:计算指定区域中符合条件的单元格数。 语法结构:=Countif(条件范围,条件)。 目的:按“性别”统计单元格数。

方法: 在目标单元格中输入公式:=COUNTIF(C4:C10,K3)。 5、Countifs函数。 功能:统计一组规定条件下所指定的单元格数。 语法结构:=Countifs(条件1范围,条件1,条件2范围,条件2……条件N范围,条件N)。 目的:计算>60且<80的人数。

Oracle ebs 常用数据表

Oracle EBS常用数据表 EBS常用数据表:(未整理) INV库存 organization 两个含义: 1. 经营单位,A/B/C分公司,A下面有A1,A2等工厂,主题目标是为了独立核算此组织ORG,ORG_ID; 2. 库存组织,例如制造商的仓库,例如A1,A2等工厂 Organization_id; HR_ORGANIZATION_UNITS - Org_organization_definitions Mtl_subinventory_ 库存组织单位 MTL_PARAMETERS -库存组织参数(没有用ID,直接用name) MTL_SYSTEM_ITEMS_b -物料信息(同上,应用了库存组织name) MTL_SECONDARY_INVENTORIES -子库存组织- MTL_ITEM_LOCATTIONS -货位- SUBINVENTROY_CODE Mtl_Material_Transactions - (库存)物料事物表 成本mtl_transaction_accounts transaction_cost是事物成本; ACTUAL_COST是通过成本算法计算出来的实际成本,主计量单位 现有量 汇总历史记录(正负合计) Mtl_Material_Transactions MTL_ONHAND_QUANTITIES现有量表,组织/子库存/货位/物品summary可能按照挑库先进先出统计,如果设置了"不允许负库存",这样就不可能出现负数

PO 请购单头表 Po_Requisition_Headers_all 行表 Po_Requisition_lines_all 采购订单 PO_HEADER_ALL PO_LINES_ALL 采购接收-退货/组织间转移/正常状态都需要使用这个模块 RCV_TRANSACTIONS 1. 接收100单位货物,放入“待质检”货位 2. 接受/拒绝 3. 库存/退回 有三个不同的状态!例如:接收100个,80个接受入库,20个退回,那么有80个接受事务/20个退回事物 select TRANSACTION_TYPE,DESTINATION_TYPE_CODE from RCV_TRANSACTIONS 可以看出以下阶段: A1.RECEIVE – RECEIVING A2.ACCEPT – RECEIVING A3.DELIERY – INVETORY(影响库存现有量) 如果按照正常模式,最后会触发产生MTL_MATERIAL_TRANSACTIONS 销售订单 OE_ORDER_headers_all SOLD_FROM_ORG_ID SOLD_TO_ORG_ID 就是客户层 SHIP_FROM_ORG_ID SHIP_TO_ORG_ID 就是客户收货层 INVOICE_TO_ORG_ID 就是客户收单层

COUNTIF函数的使用方法(excel)

EXCEL中COUNTIF函数的使用方法 (2010-01-30 07:35:08) 转载 标签: 分类:Excel 单元格 a2 data 空文 个数 教育 1. 计算符合给定条件的区域中的非空单元格数 COSH 返回数的双曲线余弦...COUNTIF 计算符合给定条件的区域中的非空单元格数...DEGREES 将弧度转换为度 2. 工作表函数 返回参数的双曲余弦值...COUNTIF 工作表函数...计算给定区域内满足特定条件的单元格的数目 3. 假空单元格个数 案例296 统计真空、假空单元格个数(COUNTIF) 303... 4. 条件计数函数 条件计数函数COUNTIF...语法:COUNTIF(RANGE,CRTERIA) countif 函数是计算区域中满足给定条件的单元格的个数。 A B 1 数据数据 2 苹果 32 3 柑桔 54 4 桃 75 5 苹果 86

公式说明(结果) =COUNTIF(A2:A5,"apples") 计算第一列中苹果所在单元格的个数 (2) =COUNTIF(B2:B5,">55") 计算第二列中值大于 55 的单元格个数 (2) =countif(A:A,B1) 表示在A列中找出所有等与B1单元格内容的个数 COUNTIF函数常规用法 一、求各种类型单元格的个数 (1) 求真空单元格单个数: =COUNTIF(data,"=") (2) 真空+假空单元格个 数: =COUNTIF(data,"") 相当于countblank()函数 (3) 非真空单元格个 数: =COUNTIF(data,"<>") 相当于counta()函数 (4) 文本型单元格个 数: =COUNTIF(data,"*") 假空单元格也是文本型单元格 (5) 区域内所有单元格个数: =COUNTIF(data,"<>""") (6) 逻辑值为TRUE的单元格数量 =COUNTIF(data,TRUE) 小说明: EXCEL单元格内数据主要有以下几类:数值型,文本型,逻辑型,错误值型。其中时间类型也是一种特殊的数值。文本类型的数字是文本型。 空单元格:指什么内容也没有的单元格,姑且称之为真空。 假空单元格:指0字符的空文本,一般是由网上下载来的或公式得来的,姑且称之为假空。 date指单元格区域,该参数不能是数组 二、求><=某个值的单元格个数

oracle中的dual表详解

Oracle 中的DUAL 表详解 大家一定觉得Oracle 中的DUAL 表很神秘,至少对于我是这样的,因为平时我很少写SQL 语句,不过执行了在工作中执行了很多数据脚本,很多的数据脚本中都查询了这个DUAL 表,所以我决定研究研究这个表到底是做什么的,在网上搜到下面这篇文章,觉得写的还不错,所以转载到自己的博客上加强下记忆,如果你感兴趣可以读读下面的文字和我一起揭开DUAL 表的神秘面纱。 1. DUAL 表的用途 DUAL 是Oracle 中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select 语句块中: –查看当前连接用户 SQL> select user from dual; USER —————————— SYSTEM –查看当前日期、时间 SQL> select sysdate from dual; SYSDATE

———– 2007-1-24 1 SQL> select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual; TO_CHAR(SYSDATE,’YYYY-MM-DDHH2 —————————— 2009-12-16 09:01:55 –当作计算器用 SQL> select 1+2 from dual; 1+2 ———- 3 –查看序列值 SQL> create sequence aaa increment by 1 start with 1; SQL> select aaa.nextval from dual; NEXTV AL ———- 1 SQL> select aaa.currval from dual; CURRV AL ———- 1

Oracle 表三种连接方式使用介绍(sql优化)

1. NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是nested loops。一般在nested loop中,驱动表满足条件结果集不大,被驱动表的连接字段要有索引,这样就走nstedloop。如果驱动表返回记录太多,就不适合nested loops了。如果连接字段没有索引,则适合走hash join,因为不需要索引。 可用ordered提示来改变CBO默认的驱动表,可用USE_NL(table_name1 table_name2)提示来强制使用nested loop。 要点如下: 1)对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择 2)使用USE_NL(table_name1 table_name2)可是强制CBO 执行嵌套循环连接 3)Nested loop一般用在连接的表中有索引,并且索引选择性较好的时候 4)OIN的顺序很重要,驱动表的记录集一定要小,返回结果集的响应时间是最快的。 5)Nested loops 工作方式是从一张表中读取数据,访问另一张表(通常是索引)来做匹配,nested loops适用的场合是当一个关联表比较小的时候,效率会更高。 2. HASH JOIN hash join是CBO 做大数据集连接时的常用方式。优化器扫描小表(数据源),利用连接键(也就是根据连接字段计算hash 值)在内存中建立hash表,然后扫描大表,每读到一条记录就探测hash表一次,找出与hash表匹配的行。 当小表可以全部放入内存中,其成本接近全表扫描两个表的成本之和。如果表很大不能完全放入内存,这时优化器会将它分割成若干不同的分区,不能放入内存的部分就把该分区写入磁盘的临时段,此时要有较大的临时段从而尽量提高I/O 的性能。临时段中的分区都需要换进内存做hash join。这时候成本接近于全表扫描小表+分区数*全表扫描大表的代价和。 至于两个表都进行分区,其好处是可以使用parallel query,就是多个进程同时对不同的分区进行join,然后再合并。但是复杂。 使用hash join时,HASH_AREA_SIZE初始化参数必须足够的大,如果是9i,Oracle建议使用SQL工作区自动管理,设置WORKAREA_SIZE_POLICY 为AUTO,然后调整PGA_AGGREGATE_TARGET即可。 以下条件下hash join可能有优势: 1)两个巨大的表之间的连接。 2)在一个巨大的表和一个小表之间的连接。 要点如下: 1)散列连接是CBO 做大数据集连接时的常用方式. 2)也可以用USE_HASH(table_name1 table_name2)提示来强制使用散列连接 3)Hash join在两个表的数据量差别很大的时候. 4)Hash join的工作方式是将一个表(通常是小一点的那个表)做hash运算并存储到hash列表中,从另一个表中抽取记录,做hash运算,到hash 列表中找到相应的值,做匹配。 可用ordered提示来改变CBO默认的驱动表,可用USE_HASH(table_name1 table_name2)提示来强制使用hash join。 3. SORT MERGE JOIN a)对连接的每个表做table access full;

oracle函数用法

Oracle函数用法 1. sql函数 包括单行函数和多行函数,其中单行函数是指输入一行输出也是一行的函数;多行函数也被称为分组函数,它会根据输入的多行数据输出一个结果。 一数字函数 1.CEIL(n):该函数用于返回大于等于数字n的最小整数,示例如下: 2.FLOOR(n):该函数用于返回小于等于数字n的最大整数,示例如下:

3.MOD(m,n):该函数用于取得两个数字相除后的余数,如果数字n 为0,则返回结果为m,示例如下: 4.ROUND(n,[m]):该函数用于执行四舍五入运算,示例如下: 如果省略m,则四舍五入至整数位: 如果m是负数,则四舍五入到小数点前m位:

如果m是正数,则四舍五入至小数点后m位: 5.TRUNC(n,[m]):该函数用于截取数字, 如果省略数字m,则将数字n的小数部分截去: 如果数字m是正数,则将数字n截取至小数点后的第m位:

如果数字m是负数,则将数字n截取至小数点的前m位: 6.SIGN(n):该函数用于检测数字的正负, 如果数字n小于0,则函数的返回值为-1; 如果数字n等于0,则函数的返回值为0; 如果数字n大于0,则函数的返回值为1

7.ABS(n):该函数用于返回数字n的绝对值,请看示例: 8.SIN(n):该函数用于返回数字n(以弧度表示的角)的正弦值,示例如下: 9.COS(n):该函数用于返回数字n(以弧度表示的角度值)的余弦值。

10.ASIN(n):该函数用于返回数字n的反正弦值,输入值的范围是-1~1,输出值的单位为弧度,示例如下: 11.ACOS(n):该函数用于返回数字n的反余弦值,输入值的范围是-1~1,输出值的单位为弧度,示例如下:

Oracle函数大全

附录Ⅱ Oracle11g SQL函数 函数名 返回 类型 说明 字符串函数 ASCII(s) 数值 返回s首位字母的ASCII码 CHR(i) 字符 返回数值i的ASCII字符 CONCAT(s1,s2) 字符 将s2连接到字符串s1的后面 INITCAP(s) 字符 将每个单词首位字母大写其它字母小写 INSTR(s1,s2[,i[,j]]) 数值 返回s2在s1中第i位开始第j次出现的位置 INSTRB(s1,s2[,i[,j]]) 数值 与INSTR(s)函数相同,但按字节计算 LENGTH(s) 数值 返回s的长度。 LENGTHb(s) 数值 与LENGTH(s)相同,但按字节计算。 lower(s) 字符 返回s的小写字符 LPAD(s1,i[,s2]) 字符 在s1的左侧用s2字符串补足到总长度i LTRIM(s1,s2) 字符 循环去掉在s2中存在的s1左边字符 RPAD(s1,i[,s2]) 字符 在s1的右侧用s2字符串补足到总长度i RTRIM(s1,s2) 字符 循环去掉在s2中存在的s1右边字符 REPLACE(s1,s2[,s3]) 字符 用s3替换出现在s1中的s2 REVERSE(s) 字符 返回s倒排的字符串 SUBSTR(s,i[,j]) 字符 从s的第i位开始截得长度j的子字符串 SUBSTRB(s,i[,j]) 字符 与SUBSTR相同,但i,j按字节计算。 SOUNDEX(s) 返回与s发音相似的词 TRANSLATE(s1,s2,s3) 字符 将s1中与s2相同的字符以s3代替 TRIM(s) 字符 删除s的首部和尾部空格 UPPER(s) 字符 返回s的大写 正则表达式函数 REGEXP_LIKE() 布尔 功能与LIKE的功能相似 REGEXP_INSTR() 数值 功能与INSTR的功能相似 REGEXP_SUBSTR() 字符 功能与SUBSTR的功能相似 REGEXP_REPLACE() 字符 功能与REPLACE的功能相似 数字函数 ABS(i) 数值 返回i的绝对值 ACOS(i) 数值 反余玄函数,返回-1到1之间的数 ASIN(i) 数值 反正玄函数,返回-1到1之间的数 ATAN(i) 数值 反正切函数,返回i的反正切值

相关文档