这个问题是解析的时候Oracle不知道select num from table_number where dwdm='111' and rownum<=1 是唯一啊,他按照语法解析而已。
可以换成以下的:
SELECT ((SELECT num FROM table_number WHERE dwdm = '111' AND rownum <= 1) - (SELECT SUM(ds) FROM table_data WHERE dwdm = '111' AND rq >= to_date('2015-01-01', 'yyyy-mm-dd'))) / (to_date('2015-4-16', 'yyyy-mm-dd') - to_date('2015-01-01', 'yyyy-mm-dd') + 1) FROM dual;
电脑蓝屏又叫蓝屏死机,指的是微软Windows操作系统在无法从一个系统错误中恢复过来时所显示的屏幕图像。
***STOP 0x0000001E(0xC0000005,0xFDE38AF9,0x0000001,0x7E8B0EB4) KMODE_EXCEPTION_NOT_HANDLED ***
其中错误的第一部分是停机码(Stop Code)也就是STOP 0x0000001E,用于识别已发生错误的类型, 错误第二部分是被括号括起来的四个数字集,表示随机的开发人员定义的参数,第三部分是错误名。
信息第一行通常用来识别生产错误的驱动程序或者设备,这种信息多数很简洁,但停机码可以作为搜索项在微软知识库和其他技术资料中使用。
SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。
各种不同的数据库对SQL语言的支持与标准存在着细微的不同,这是因为,有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。已有100多种遍布在从微机到大型机上的数据库产品SQL,其中包括DB2、SQL/DS、ORACLE、INGRES、SYBASE、SQLSERVER、DBASEⅣ、PARADOX、MICROSOFTACCESS等。
SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。可以看出标准化的工作是很有意义的。早在1987年就有些有识之士预测SQL的标准化是“一场革命”,是“关系数据库管理系统的转折点”。数据库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同数据库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。
1974年,在IBM公司圣约瑟研究实验室研制的大型关系数据库管理系统SYSTEM R 中,使用SEQUEL语言(由BOYCE 和CHAMBERLIN 提出),后来在SEQUEL 的基础上发展了SQL 语言。 SQL语言是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DO或FOR 类似的循环语句,但它可以嵌入到另一种语言中,也可以借用VB、C、JAVA等语言,通过调用级接口(CALL LEVEL INTERFACE)直接发送到数据库管理系统。SQL基本上是域关系演算,但可以实现关系代数操作。
select * from 表名 group by 列名
这个语句是错误的,group by 语句不用用和*搭配的,除非你查询的所有列都包含在GROUP BY语句汇总,解决的办法就是,把*换成具体的列名,并且列表必须包含统计函数(max,min,count等)。
例如 学生表(学号,姓名,性别,年龄)
SELECT MAX(学号),MAX(姓名),性别,MAX(年龄)
FROM 学生表
GROUP BY 性别
* 中,含有不能通过分组进行组合的字段。
举个例子说:
emp表:
empno ename dept_id
1 tony 1
2 jack 1
使用select * from emp e group by e.dept_id;
dept_id虽可进行分组组合,但是empno,ename不能进行组合。
group by 的意思为分组汇总。
使用了group by 后,要求Select出的结果字段都是可汇总的,否则就会出错。
比如,有:{学号,姓名,性别,年龄,成绩}字段
这样写:
SELECT 学号,姓名,性别,年龄,sum(成绩)
FROM 学生表
GROUP BY 学号
就是错的,因为 “姓名、性别、年龄”未被汇总,且不一定是单一。
这样写:
SELECT MAX(学号),MAX(姓名),MAX(性别),MAX(年龄),sum(成绩)
FROM 学生表
GROUP BY 学号
是对的,汇总出每一同学号学生的总成绩。注意的是,只要学号相同,别的如果有不同,取它们值最大的一条作为显示输出。
这样写:
SELECT 学号,姓名,性别,年龄,sum(成绩)
FROM 学生表
GROUP BY 学号,姓名,性别,年龄
这样写也是对的,但注意的是,学号,姓名,性别,年龄中,只要有一个不同,就会当成另一条记录来汇总。
以上仅记忆,可能有错,自个去理解测试,说错请原谅,我也是在学习中。