汇总C列不为空的A列总和

pengangcsdn 2018-04-23 04:44:36
数据结构:A 数量,B 金额,C 折扣金额
除了用二级查询以外有没有其他方法?

用二级查询的话是这样:
select sum(a) 总数量,sum(b) 总金额,(sum(a) from tab where c is not null) 折扣数量

问题就在折扣数量这里,能否有不用二级查询的办法,因为外面的条件太多,用二级查询很麻烦。

谢谢!
...全文
881 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
sql2012 以上可以用iif
select sum(a) 总数量,sum(b) 总金额,sum(iif(c IS NOT NULL ,a,0) AS  折扣数量 from tab
就是只有一个条件分支 会简短一些~
道素 2018-04-25
  • 打赏
  • 举报
回复
感觉楼主想要的是: select sum(a) 总数量,sum(b) 总金额,(sum(a) from tab where c is not null) 折扣数量

select sum(a) 总数量,sum(b) 总金额,sum(CASE WHEN c IS NOT NULL THEN  a ELSE 0 END ) AS  折扣数量 from tab
二月十六 2018-04-23
  • 打赏
  • 举报
回复
问题描述的不太清楚,这句sql语句有问题 select sum(a) 总数量,sum(b) 总金额,(sum(a) from tab where c is not null) 折扣数量 按照楼主的说法,这样写就可以了
SELECT SUM(a) 总数量
FROM tab
WHERE c IS NOT NULL;
建议楼主给出测试数据和对应的结果
excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格中自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、中、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双成绩进行共同排名 在双间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并排名 无并排名 有并分段排名 无并分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N出A1:L9中每都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去格函数如何去掉字符和单元格里的格 怎样快速去除表中不同行和格 如何禁止输入格 代替单元格中字符串 把单元格中的数字转变成为特定的字符格式 把有六百多个单元格的一,变成一页的多 将N变M公式归纳为 一变四变一 重复四次填充 多行数据排成一 将单元格一分为多 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印中如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行行,怎么加最方便 Excel中插入白行 快速删除工作表中的行快速删除行一次删完Excel里面多出很多的白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行快速转换 将原有中的内容倒置过来 快速回到A1单元格 复制粘贴中回车键的妙用 一次选中批注单元格 一次在所有单位格中插入批注 在公式中插入批注 不连续单元格填充同一数据 白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel中鼠标双击妙用 Excel中快速定位的技巧实例 在Excel中插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字中间的数 三个数中,如何取出中间那个 取数值后三位公式 取数函数 如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一中的文字统一去掉最后一个字 讨如何去掉单元格中的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格中的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格中 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格中的数全部变成万元表示 有何办法实现将一张表中的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel中设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a动态求和 动态求和公式 的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔将相同项目进行求和 隔行或隔加总 请问如何在一百行内做隔行相加 如何将间隔一定的的数据相加呢 隔求和(A、B) 隔求和的公式 隔求和 关于隔行、隔求和的问题 EXCEL中求两的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10中的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计中的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十数据合计成一 统计汉字字符个数 关于取数 统计单元格内不为的格数 自动将销量前十名的产品代号及销量填入表中 统计最大的连续次数3个“不重复”个数统计在一有重复的姓名中,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据中发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格中字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或中间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或中间值)平均数怎么弄 去掉其中两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值中去掉最高与最低然后求平均值 求最大值(n) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格中包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一中最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据中自动获取最后一个数据 两数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一中不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C中输入工号在D显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性
excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格中自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、中、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双成绩进行共同排名 在双间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并排名 无并排名 有并分段排名 无并分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N出A1:L9中每都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去格函数如何去掉字符和单元格里的格 怎样快速去除表中不同行和格 如何禁止输入格 代替单元格中字符串 把单元格中的数字转变成为特定的字符格式 把有六百多个单元格的一,变成一页的多 将N变M公式归纳为 一变四变一 重复四次填充 多行数据排成一 将单元格一分为多 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印中如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行行,怎么加最方便 Excel中插入白行 快速删除工作表中的行快速删除行一次删完Excel里面多出很多的白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行快速转换 将原有中的内容倒置过来 快速回到A1单元格 复制粘贴中回车键的妙用 一次选中批注单元格 一次在所有单位格中插入批注 在公式中插入批注 不连续单元格填充同一数据 白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel中鼠标双击妙用 Excel中快速定位的技巧实例 在Excel中插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字中间的数 三个数中,如何取出中间那个 取数值后三位公式 取数函数 如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一中的文字统一去掉最后一个字 讨如何去掉单元格中的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格中的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格中 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格中的数全部变成万元表示 有何办法实现将一张表中的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel中设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a动态求和 动态求和公式 的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔将相同项目进行求和 隔行或隔加总 请问如何在一百行内做隔行相加 如何将间隔一定的的数据相加呢 隔求和(A、B) 隔求和的公式 隔求和 关于隔行、隔求和的问题 EXCEL中求两的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10中的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计中的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十数据合计成一 统计汉字字符个数 关于取数 统计单元格内不为的格数 自动将销量前十名的产品代号及销量填入表中 统计最大的连续次数3个“不重复”个数统计在一有重复的姓名中,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据中发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格中字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或中间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或中间值)平均数怎么弄 去掉其中两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值中去掉最高与最低然后求平均值 求最大值(n) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格中包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一中最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据中自动获取最后一个数据 两数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一中不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C中输入工号在D显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性
一、填 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。 4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。 5.Where子句可以接收From子句输出的数据,而HAVING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。 6.在SQL语句中,用于向表中插入数据的语句是Insert。 7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select语句。 8.使用Describe命令可以显示表的结构信息。 9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。 10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Run命令运行该文件。 11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都保存在自己的模式中。 12.根据约束的作用域,约束可以分为表级约束和级约束两种。级约束是字段定义的一部分,只能够应用在一个上;而表级约束的定义独立于的定义,它可以应用于一个表中的多个。 13.填写下面的语句,使其可以为Class表的ID添加一个名为PK_CLASS_ID的主键约束。 ALTER TABLE Class Add ____________ PK_LASS_ID (Constraint) PRIMARY KEY ________ (ID) 14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp 15. Oracle提供了两种类型的权限:系统权限和对象权限。系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 . 17. 从存储结构的角度来说,Oracle数据库可分为物理结构和逻辑结构。 18. 表间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个SYSTEM系统表间。 19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。 20.序是一种可被多个用户使用的用于产生一系唯一数字的数据库对象。尤其适合多用户环境中,可以生成唯一的序号而没有磁盘I/O或事务处理锁定开销。 21. 一个表间具有离线(OFFLINE)、在线(ONLINE)、只读(READ ONLY)、读写(READ WRITE)状态。 二、选择 1.在全局存储区SGA中,哪部分内存区域是循环使用的?( B ) A.数据缓冲区 B.日志缓冲区 C. 共享池 D.大池 2.如果一个服务器进程非正常终止,Oracle系统将使用下哪一个进程来释放它所占用的资源?( D ) A.DBWR B.LGWR C. SMON D.PMON 3. 如果要查询数据库中所有表的信息,应当使用下哪种数据字典视图?( A ) A. DBA视图 B. ALL视图 C. USER视图 D. 动态性能视图 4. 下哪一项是Oracle数据库中最小的存储分配单元? ( C ) A. 表间 B. 段 C. 盘区 D. 数据块 5. 下面的各选项中哪一个正确描述了Oracle数据库的逻辑存储结构? ( A ) A. 表间由段组成,段由盘区组成,盘区由数据块组成 B. 段由表间组成,表间由盘区组成,盘区由数据块组成 C. 盘区由数据块组成,数据块由段组成,段由表间组成 D. 数据块由段组成,段由盘区组成,盘区由表间组成 6. 下的哪个子句在SELECT语句中用于排序结果集?( D ) A. Having子句 B. Where子句 C. From子句 D. Order by子句 7. Having子句的作用是( B )。 a. 查询结果的分组条件 B. 组的筛选条件 C. 限定返回的行的判断条件 D. 对结果集进行排序 8. 下哪个函数可以把一个中的所有值相加求和? ( B ) A MAX B. SUM C. COUNT D. AVG 9. 下哪个子句是SELECT语句中必选项?( A ) A. FROM B.WHERE C.HAVING D. ORDER BY 10. 下哪个子句实现对一个结果集进行分组和汇总?( D ) A.HAVING B. ORDER BY C. WHERE D. GROUP BY 11. 查询一个表的总记录数,可以采用_________统计函数。( C ) A. AVG(*) B. SUM(*) C. COUNT(*) D.MAX(*) 12. 要建立一个语句向Types表中插入数据,这个表只有两,T_ID和T_Name。如果要插入一行数据,这一行的T_ID值是100,T_Name值是RFUIT。应该使用的SQL语句是_____。( A ) A. INSERT INTO Type Values(100, ‘FRUIT’) B. SELECT * FROM Type WHERE T_ID=100 AND T_NAME=’FRUIT’ C. UPDATE SET T_ID=100 FROM Types WHERE T_Name=’FRUIT’ D. DELET * FROM Types WHERE T_ID=100 AND T_Name=’FRUIT’ 13. 用_____语句修改表的一行或多行数据。( A ) A.Update B.set C.Select D.Where 14. 使用什么命令可以清除表中所有的内容? ( D ) A.INSERT B.UPDATE C. DELETE D.TRUNCATE 15.关于模式的描述下哪一项不正确?( C ) A.表或索引等模式对象一定属于某一个模式 B.在Oracle数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式 D.一个模式可以拥有多个表 16.唯一约束与主键约束的一个区别是?( D ) A.唯一约束的的值不可以有重复值 B.唯一约束的的值可以不是唯一的 C.唯一约束的不可以为值 D.唯一约束的可以为值 17. 只能存储一个值的变量是哪种变量?( B ) A. 游标 B. 标量变量 C. 游标变量 D. 记录变量 18. 声明%TPYE类型的变量时,服务器将会做什么操作?( A ) A. 为该变量检索数据库的数据类型 B.复制一个变量 C.检索数据库中的数据 D.为该变量检索的数据类型和值 19.下哪一项可以正确地引用该记录变量中的一个值?( B ) A.rec_abc(1) B. rec_abc(1).col C. rec_abc.col D.rec_abc.first() 20. 在定义游标时使用的FOR UPDATE子句的作用是______。( C ) A.执行游标 B. 执行SQL语句的UPDATE语句 C.对要更新表的进行加锁 D. 都不对 21. 如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记录添加到视图,应当在定义视图时指定下哪一个子句?( C ) A.WITH GRANT OPTION B. WITH READ ONLY C. WITH CHECK OPTION D. WITH CHECK ONLY 22. 如果想查看视图中哪些字段是可以更新的,应当查询哪一个数据字典视图?( D ) A. DBA_VIEWS B. DBA_OBJECTS C. DBA_CLU_COLUMNS D. DBA_UPDATABLE_COLUMNS 23. 在下各选项中,关于序的描述哪一项是不正确的?( D ) A. 序是Oracle提供的用于产生一系唯一数字的数据库对象 B.序并不占用实际的存储间 C.使用序时,需要用到序的两个伪NEXTVAL与CURRVAL。其中,NEXTVAL 将返回序生成的下一个值,而CURRVAL返回序的当前值 D.在任何时候都可以使用序的伪CURRVAL,以返回当前序值 24. 在下各选项中,关于同义词的描述哪一项是不正确的?( B ) A.同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称 B.在创建同义词时,所替代的模式对象必须存在 C.Oracle中的同义词分为公有同义词和私有同义词 D.公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有 25. 下哪个锁模式不属于Oracle?( D ) A. 共享锁 B.排他锁 C. 行级共享锁 D. 死锁 26. 想在另一个模式中创建表,用户最少应该具有什么系统权限?( B ) A.CREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B ) A.SET ROLE ALL B. SET ROLE ENABLE ALL C. ALTER SESSION ALL D.ALTER USER ROLE ALL 28. 下哪一个操作可以用来为一个备份操作手动分配通道?( A ) A.ALLOCATE CHANNEL B. CREATE CHANNEL C. CHANNEL ALLOCATE D. CREATE LINK 29. 下哪一个命令用来显示RMAN通道的配置信息?( C ) A. LIST B. DISPLAY C.SHOW D.都可以 30. 下哪一个命令可以用来执行不完全恢复?( B ) A. RESTORE DATABASE UNTIL B. RECOVER DATABASE UNTIL C. RECOVER DATA UNTIL D. RESTORE DATA UNTIL 三、简答题 1. 说明数据库模式与用户之间的区别。 答案: 数据库模式与用户之间的区别在于:用户是数据库的使用者和管理者,用户具有帐户状态、访问权限和操作权限等属性。模式是一系逻辑数据结构或对象的集合,是数据库中对象的组织和管理单位。 2. 简要游标的作用和游标操作的基本步骤。 答案: 游标的作用是将数据库的中数据检索出来后缓存,可以被PL/SQL程序一行一行的读取并处理。支持一条、多条、零条记录的处理。 游标的基本操作步骤为: (1)声明游标,使用查询来定义游标的和行 (2)打开游标,使用PL/SQL命令OPEN来打开一个声明的游标 (3)提取数据,从游标中重复提取每条记录到数据结构中,直到数据集合被提交 (4)关闭游标,使用完游标后将其关闭 3.Oracle数据库的工作模式有哪两种?它们之间有有何区别? 答案: 在Oracle数据库中,数据库的操作模式分为专用服务器(DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模式两种。其中,在专用服务器模式中为每个用户进程创建一个服务器进程,用户进程与服务器进程之间是1:1的关系;在共享服务器模式中,一个服务器进程可以为多个用户进程服务器。 4.说明数据库内存结构中SGA和PGA的组成,以及这两个内存区存放信息的区别。 答案: SGA区由数据缓冲区、共享池、重做日志缓冲区、大型池、JAVA池构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。用户对数据库的各种操作主要在SGA区中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为实例的PGA区的大小。 5. 说明数据库表间的种类,以及不同类型表间的作用。 答案: 数据库表间分为系统表间和非系统表间两类,其中非系统表间包括撤销表间、临时表间和用户表间等。 SYSTEM表间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表间专门进行回退信息的自动管理。临时表间是专门进行临时段管理的表间。用户表间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。 6. 说明Oracle 10g数据库文本初始化参数文件与服务器初始化参数文件的区别。 答案: 文本初始化参数文件是一个本地的初始化参数文件,而服务器初始化参数文件是一个放在数据库服务器端的共享的二进制初始化参数文件。文本参数文件的修改是通过直接对文本的修改实现的,通过命令行是无法将修改后的参数值写入该文件中,而服务器初始化参数文件是不能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及各个部分的作用。 答案: PL/SQL程序的基本单元是语句块,所有的PL/SQL程序都是由语句块构成的,语句块之间可以相互嵌套,每个语句块完成特定的功能。  声明部分:以关键字DECLARE开始,BEGIN结束。主要用于声明变量、常量、数据类型、游标、异常处理名称以及本地(局部)子程序定义等。  执行部分:是PL/SQL块的功能实现部分,以关键字BEGIN开始,EXCEPTION或END结束(如果PL/SQL块中没有异常处理部分,则以END结束)。该部分通过变量赋值、流程控制、数据查询、数据操纵、数据定义、事务控制、游标处理等实现块的功能。 异常处理部分:以关键字EXCEPTION开始,END结束。该部分用于处理该块执行过程中产生的异常。 8. 说明触发器的种类和对应的作用对象、触发事件。 答案: 触发器包括DML触发器、INSTEAD-OF触发器和系统触发器。其中,DML触发器主要作用于表,其事件有INSERT、UPDATE、DELETE;INSTEAD-OF触发器主要主用于视图,其事件有INSERT、UPDATE、DELETE;系统触发器主要是DML事件和系统事件发生时调用的触发器,其中DML事件包括CREATE、DROP、ALTER等,系统事件包括LOGON、LOGOFF、STARTUP、SHUTDOWN、SERVERERROR等。 9.简述Oracle数据库角色的种类、作用,以及如何利用角色为用户授权。 答案: Oracle数据库中角色分为系统预定义的角色和用户自定义的角色两类。角色是一系权限的集合,可以先将权限授予角色,然后将角色授予具有相同权限的用户。 四、求解题 现有关系数据库如下: S(SNO,SNAME,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 其中,S为供应商,包含属性的含义依次是供应商代码、供应商名字、供应商所在城市;P为零件,包含属性的含义依次是零件代码、零件名字、颜色、重量;J为工程项目,包含属性的含义依次是工程项目代码、工程项目名字、工程项目所在城市;SPJ为供货关系,包含属性的含义依次是供应商代码、零件代码、工程项目代码,某供应商向某个项目供应数量的零件数量。 请用SQL语言完成如下问题: (1)查询供应工程J1零件P1的供应商号码SNO (2)查询供应工程J1零件为红色的供应商号码SNO (3)查询没有使用北京供应商生产的红色零件的工程号JNO 五、设计题(E-图) 六、PL/SQL语言程序设计题。 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生: 现要建立关于系、学生、班级的数据库,关系模式为: 班CLASS(班号classid,专业名subject,系名deptname,入学年份enrolltime,人数num) 学生STUDENT(学号studentid,姓名name,年龄age,班号classid) 系DEPARTMENT(系号deptid,系名deptname) 试用PL/SQL语言完成以下功能: 1. 建表,在定义中要求声明: (1) 每个表的主外键。 (2) 每个班级的人数不能超过30人。 (3) 学生的年龄介于15到40岁之间。 (4) 学生姓名不能为。 2. 插入如下数据 CLASS表 classid subject deptname enrolltime num 101 软件 计算机 1995 20 102 微电子 计算机 1996 30 111 无机化学 化学 1995 29 112 高分子化学 化学 1996 25 121 统计数学 数学 1995 20 131 现代语言 中文 1996 20 141 国际贸易 经济 1997 30 142 国际金融 经济 1996 14 STUDENT表 studentid name age classid 8101 张三 18 101 8102 钱四 16 121 8103 王玲 17 131 8105 李飞 19 102 8109 赵四 18 141 8110 李可 20 142 8201 张飞 18 111 8302 周瑜 16 112 8203 王亮 17 111 8305 董庆 19 102 8409 赵龙 18 101 8510 李丽 20 142 DEPARTMENT表 deptid deptname 001 数学 002 计算机 003 化学 004 中文 005 经济 3. 学校又新增加了一个物理系,编号为006 4. 学生张三退学,请更新相关的表。 1、有一张表test,有3个字段id,name,parentid。parentid是指父亲的id,请写一个sql语句,找出当过爷爷的id和name。 2、有一张学生表student,字段有student_id,name,即学号,名字。 还有一张选课表,字段有student_id,lesson_id。 还有一张课程表,字段lesson_id,lesson_name。 学生和课程是多对多的关系。 写一个sql语句,找出所有选了全部课程的学生。 3、有一张表person表,字段有id,name,age。age是年龄。 写一个sql语句,找出年龄最接近的2个人。 如有下面4条记录: 1,a,18 2,b,20 3,c,25 4,d,26 则输出3,4 emp表和dept表完成下练习 Emp员工表 empno ename job Mgr Hiredate Sal Comm Deptno 员工号 员工姓名 工作 上级编号 受雇日期 薪金 佣金 部门编号 Dept表 Deptno Dname Loc 部门编号 部门名称 地点 1.出至少有一个员工的所有部门。 select dept_id from s_emp where userid is not null; 2.出薪金比“chad”多的所有员工。 select id,salary from s_emp where salary>(select salary from s_emp where first_name='Chad'); 3.出所有员工的姓名及其直接上级的姓名。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+); 4.出受雇日期早于其直接上级的所有员工。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+) and l.start_date>e.start_date; 5.出部门名称和这些部门的员工信息,同时出那些没有员工的部门。 6.出所有“CLERK”(办事员)的姓名及其部门名称。 7.出最低薪金大于1500的各种工作。 8.出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。 9.出薪金高于公司平均薪金的所有员工。 10.出与“SCOTT”从事相同工作的所有员工。 11.出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。 12.出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。 13.出在每个部门工作的员工数量、平均工资和平均服务期限。 14.出所有员工的姓名、部门名称和工资。 15.出从事同一种工作但属于不同部门的员工的一种组合。 16.出所有部门的详细信息和部门人数。 17.出各种工作的最低工资。 18.出各个部门的MANAGER(经理)的最低薪金。 19.出所有员工的年工资,按年薪从低到高排序。 原文:http://www.2xyd.cn/showtopic-524.aspx Oracle习题二附答案 使用scott/tiger的emp表完成练习 更多编程相关:http://www.2xyd.cn/showforum-11.aspx 答案: 1. select distinct dname from dept where deptno in (select distinct deptno from emp); 要查部门编号如果存在于emp 表中,说明这个部门有员工。 2. select ename,job,mgr,hiredate,sal from emp where sal> (select sal from emp where ename='SMITH'); 3. select e.ename, e.mgr , w.ename from emp e, emp w where e.mgr=w.empno; 4. select e.ename, e.mgr , e.hiredate,w.ename,w.hiredate from emp e, emp w where e.mgr=w.empno and e.hiredate< w.hiredate; 5. select e.ename,e.hiredate, d.dname,d.deptno from emp e, dept d where e.deptno (+)=d.deptno; 本例子使用的是外连接, 也可以用右连接。 select e.ename,e.hiredate, d.dname,d.deptno from emp e right join dept d on e.deptno=d.deptno; 6. select e.ename,e.hiredate,e.job, d.dname,d.deptno from emp e, dept d where e.deptno =d.deptno and e.job=upper('clerk'); 7. select job, min(sal) from emp group by job having min(sal)>1500; 8. select e.ename,d.dname from emp e,dept d 2楼 where e.deptno=d.deptno and d.dname=upper('sales'); 或者: select ename from emp where deptno = (select deptno from dept where dname=upper('SALES')); 9. select ename, job, sal from emp where sal> (select avg(sal) from emp ); 10. select ename, job from emp where job = (select job from emp where ename=upper('scott')); 11. select ename, sal,job from emp where sal in (select sal from emp where deptno=30); 12. select ename, sal,job from emp where sal >all (select sal from emp where deptno=30); 或者 select ename ,sal from emp where sal> (select max(sal) from emp where deptno=30); 13. select d.deptno,d.dname, count(e.ename), avg(e.sal), avg(months_between(sysdate,e.hiredate)) from emp e, dept d where e.deptno(+)= d.deptno group by d.deptno,dname; 或者下面的方法,这种方法更好理解,把需要汇总的生成一个视图e。 select e.*,d.dname , from (select deptno, count(ename) ,avg(sal),avg(months_between(sysdate,hiredate)) from emp group by deptno) e, dept d where e.deptno =d.deptno; 14. select d.dname, e.ename, sal+nvl(comm,0) from emp e, dept d where d.deptno=e.deptno; 15. select e.ename,e.job, e.deptno ,d.job, d.deptno from emp e, emp d where e.job=d.job and e.deptno<>d.deptno; 16. select count(e.ename),d.dname from emp e, dept d where e.deptno(+)= d.deptno group by e.deptno,d.dname; 或者写成 select d.deptno,e.*,d.dname from (select deptno,count(ename) from emp group by deptno) e,dept d where e.deptno(+)= d.deptno; 17. select job,min(sal+nvl(comm,0))from emp group by job; 18. select deptno,min(sal) from emp where job=upper('manager') group by deptno ; 19. select ename , (sal+nvl(comm,0))*12 yearsal from emp order by yearsal ; --1、出至少有一个雇员的所有部门   select distinct dname from dept where deptno in (select distinct deptno from emp);   --2、出薪金比"SMITH"多的所有雇员   select ename,sal from emp where sal>(select sal from emp where ename=upper('smith'));   --3、出所有雇员的姓名及其直接上级的姓名   select e.ename,m.ename from emp e,emp m where e.mgr=m.empno(+);   --4、出入职日期早于其直接上级的所有雇员   select ename from emp e where hiredate<(select hiredate from emp where empno=e.mgr);   --5、出部门名称和这些部门的雇员,同时出那些没有雇员的部门   select dname,ename from dept d left join emp e on d.deptno=e.deptno;   --6、出所有“CLERK”(办事员)的姓名及其部门名称   select ename,dname from emp e left join dept d on e.deptno=d.deptno where job=upper('clerk');   --7、出各种工作类别的最低薪金,显示最低薪金大于1500的记录   select job,min(sal) from emp group by job having min(sal)>1500;   --8、出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号   select ename from emp where deptno = (select deptno from dept where dname=uppder('SALES'))   --9、出薪金高于公司平均水平的所有雇员   select ename from emp where sal>(select avg(sal) from emp);   --10、出与“SCOTT”从事相同工作的所有雇员   select ename from emp where job=(select job from emp where ename=upper('scott'));   --11、出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金   select ename,sal from emp where sal in (select sal from emp where deptno=30);   --12、出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金   select ename ,sal from emp where sal>(select max(sal) from emp where deptno=30);   --13、出每个部门的信息以及该部门中雇员的数量   select d.deptno,dname,count(ename) from dept d left join emp e on (d.deptno=e.deptno)   group by d.deptno,dname   --14、出所有雇员的雇员名称、部门名称和薪金   Select e.ename,d.dname,e.sal from emp e left join dept d on (d.deptno=e.deptno)   --15、出从事同一种工作但属于不同部门的雇员的不同组合   Select tba.ename,tbb.ename,tba.job,tbb.job,tba.deptno,tba.deptno   From emp tba,emp tbb   Where tba.job=tbb.job and tba.deptno<>tbb.deptno   --16、出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员   Select dept.deptno,dname,loc,count(empno)   From dept,emp   Where dept.deptno=emp.deptno(+)   Group by dept.deptno,dname,loc   --17、出各种类别工作的最低工资   Select min(sal) from emp group by job   --18、出各个部门的MANAGER(经理)的最低薪金   Select deptno,min(sal) from emp where job=upper(‘manager’) group by deptno   --19、出按年薪排序的所有雇员的年薪   select (sal+nvl(comm,0))*12 as avn from emp order by avn   --20、出薪金水平处于第四位的雇员   Select * from (Select ename,sal, rank() over (order by sal desc) as grade from emp) where grade=4 --1、选择部门30中的雇员   select * from emp where deptno=30;   --2、出所有办事员的姓名、编号和部门   select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptno where job=upper(‘clerk’);   --3、找出佣金高于薪金的雇员   select * from emp where comm>sal;   --4、找出佣金高于薪金60%的雇员   select * from emp where comm>sal*0.6   --5、找出部门10中所有经理和部门20中的所有办事员的详细资料   select * from emp where (deptno=10 and job=upper(‘manager‘)) or (deptno=20 and job=upper(‘clerk ‘));   --6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料   select * from emp where (deptno=10 and job=upper(‘manager‘)) or (deptno=20 and job=upper(‘clerk ‘)) or (job<>upper(‘manager’) and job<>upper(‘clerk’) and sal>=2000)   --7、找出收取佣金的雇员的不同工作   select distinct job from emp where comm>0;   --8、找出不收取佣金或收取的佣金低于100的雇员   select * from emp where nvl(comm,0)<100;   --9、找出各月最后一天受雇的所有雇员   select * from emp where hiredate= last_day(hiredate);   --10、找出早于25年之前受雇的雇员   select * from emp where months_between(sysdate,hiredate)/12>25;   select * from emp where hiredate0;   --25、以年、月和日显示所有雇员的服务年限   Select months_between(sysdate,hiredate)/12 as “年”, months_between(sysdate,hiredate) as “月”, sysdate-hiredate as “日” from emp
本书侧重于函数的实战应用,共分12章,前10章分别介绍了数学函数、统计函数、日期和时间函数、文本函数、逻辑函数、查找和引用函数、财务函数、信息函数以及数据库和三角函数在实战中的应用;第11 章介绍了函数与Excel其他功能的结合使用,另外第12章单独介绍了Excel 2013的特有函数。 读者可以在本书中查询相关案例,从而在工作中得到解决问题的方法; 也可以将本书作为学习Excel 函数的参考书或习题集,以通过对本书中案例的演练来掌握常用的函数。 本书主要适用于希望快速掌握Excel函数相关知识,并使用公式和函数解决办公中实际问题的用户,适用于不同年龄段的办公人员、文秘、财务人员、公务员,尤其对刚进入职场的工作人员,在解决实际问题上有很大的指导作用。 Chapter 01 公式与函数必会知识和操作 1 ◎认识公式、函数及运算符 2 001 认识公式与函数的作用与联系 2 002 运算符的类型及其用途 2 003 计算中的运算顺序 4 ◎灵活处理数据计算中的各种引用 5 004 利用快捷键调整单元格的引用方式 5 005 处理跨表引用 6 006 处理跨工作簿引用 8 ◎数据计算中的互换准则与数据区分 9 007 用数值指代逻辑值的规则 9 008 用数学运算替代逻辑函数 11 009 区分单元格与文本 13 010 让白单元格不显示为0 13 ◎函数屏幕提示的妙用 15 011 提示函数的语法结构 15 012 查看函数参数的意义 17 013 快速选定指定参数 17 014 快速获取函数的帮助信息 19 ◎处理数据计算的方法 20 015 计算公式结果的几种方法 20 016 使用【F9】键查看公式结果 21 017 批量复制公式——按【Ctrl+Enter】组合键 21 018 批量复制公式——按【Ctrl+D】组合键 23 019 批量复制公式——拖动控制柄 24 020 批量复制公式——双击控制柄 25 021 批量复制公式——使用粘贴选项功能 26 Chapter 02 数学函数应用实例 29 ◎求和函数 30 001 计算所有生产线的总产量 30 002 计算签单总额在300000元以上的总金额 32 003 计算销售部当月的实发工资总和 34 004 计算销售量排前三的商品总销量 36 005 高斯求和 38 006 汇总女装订单表中已收到的定金总额 39 007 汇总跳远成绩在1.9米以上的学生人数 41 008 计算工资在8000元以上的员工工资总和 44 009 计算提成在1500~2000元的员工工资总和 45 010 统计会员在项链上的总消费 48 011 统计会员在项链和手镯上的总消费 49 012 汇总选中单元格所在行100元以上补贴总额 51 013 计算前三名和后三名的数据之和 53 014 汇总鼠标所在中大于7500的生产量 54 015 计算售价10元以下、销量200以上的商品总利润 56 016 统计销量300以上的竹盐系产品总利润 57 017 计算满足一定条件的一、二级教师工作量之差 58 018 汇总销售部和市场部迟到的人数 60 019 计算低值易耗品采购总金额 61 020 计算男性员工人数 63 021 统计购买铂金戒指的男性会员人数 64 022 汇总男性会员在首饰上的总消费 66 023 汇总教学能力85分以上的一级教师总工作量 67 024 汇总所有车间员工的实际开支费用 69 ◎随机数函数 70 025 随机生成抽检产品的序号 70 026 制作随机顺序的面试次序表 73 027 将三个部门的员工随机分组 77 028 随机抽取5名员工的编号 81 029 随机抽取一名员工工资数据 84 ◎取舍函数 87 030 将跳远平均成绩保留两位小数 87 031 以“万元”为单位计算当月的产品销售总利润 89 032 汇总数量计量单位不同的金额 90 033 将员工实发工资保留“角”,忽略“分” 91 034 计算顺利完成业务需要的人数 93 035 计算发放工资所需各种面额钞票的数量 94 036 给通讯录中的数据编号 96 037 计算员工年限工资 98 038 计算可以组建的业务小组的个数 101 039 计算员工的提成工资 103 040 制作商品简易标签 104 ◎求积函数 106 041 计算车间每小时生产产值 106 042 跨表计算总产值 108 043 根据三边求普通三角形的面积 109 044 计算超市打折活动的总营业额 110 045 制作中文九九乘法表 111 046 求不同单价下的利润 113 047 计算C产品的最大入库量 115 048 计算产品的累计入库数 116 ◎商与余数函数 117 049 根据出生年月推算员工生肖 117 050 根据出生年月判断性别 119 051 生成循环序 120 052 为员工档案奇偶行设置不同的格式 121 053 制作工资条 123 054 按梯度计算员工提成工资 125 ◎排组合函数 127 055 预计象棋比赛的总场次 127 056 计算两种彩票的中头奖概率 128 057 计算中奖率 129 ◎分类汇总函数 130 058 求所有商品的平均销量 130 059 计算隐藏某些商品时的平均利润 132 Chapter 03 统计函数应用实例 134 ◎计数函数 135 060 统计2月26日加班人次 135 061 统计女装订单数大于500的商品数量 136 062 统计月销售量1000以下、利润2000元以上商品数 138 063 统计特色商品数量 139 064 统计各部门职工的学历情况 140 065 统计销售部总人数 142 066 自动生成员工编号 143 067 统计学生缺考总次数 144 068 统计有效的调查问卷数目 145 069 统计购买各种首饰的会员人数 146 070 计算20~35岁的员工比例 148 071 统计与公司两项业务都有往来的客户数 150 072 统计语、数、外大于90分且总分大于480分的人数 151 073 统计业绩200000元以上的大专或本科学历男性业务员 152 074 统计各级业务员业绩异常的人数 154 ◎平均值函数 156 075 计算各季度的平均生产成本 156 076 计算90分以上的平均成绩 157 077 计算学生含缺考科目的平均成绩 158 078 统计销量前N名的平均销量 160 079 计算操作员的平均产量 161 080 计算4月份交货产品的平均订单金额 162 081 计算会员在金饰上的平均消费 163 082 计算金融系讲师平均授课课时 164 083 计算满足特定条件的教师的科研能力平均分 165 084 去除最值求全班跳远平均成绩 167 085 去掉一个最高分和最低分求参赛选手平均得分 169 ◎最值函数 171 086 突出显示销量最高的数据 171 087 求月销售量低于平均销量的最大销量的商品名称 173 088 分别求1~4月排前3的销售量 175 089 制作产品一季度销量排行榜 176 090 求最后购买某种首饰的会员 178 091 计算工龄最小的女员工的工龄 179 092 计算材料的3个最少消耗量 180 093 提取每月销量倒数第二的商品 182 ◎中值函数 183 094 计算3月份产品销量中值 183 095 设定社保缴费基数上下限 185 096 查找销售量处于中间位置的部门 186 ◎排名函数 188 097 对员工上半年销售业绩进行排名 188 098 查询指定学生的成绩排名 190 099 求同龄异性员工的人数 194 ◎频率分布函数 196 100 求跳远测试中出现次数最多的成绩 196 101 查询材料采购最频繁的车间 198 102 统计各个利润区间的商品数目 200 103 分别统计未完成任务和超额完成任务的人数 202 104 分别统计本科以下及本科以上学历的员工人数 204 105 统计各学历员工数 205 106 求员工销售业绩的中国式排名 207 ◎概率分布函数 210 107 优选机器维修人员招聘方案 210 108 提供可供选择的机床维修人员配置方案 212 Chapter 04 日期和时间函数应用实例 217 ◎日期函数 218 109 计算员工工龄 218 110 计算2010年之前调的平均售价 221 111 计算本月交货的产品数量 222 112 计算工程的起止年月 224 113 计算员工的转正时间 228 114 计算产品的交货时间处于哪一旬 230 115 制作2012年法定假日倒计时 232 116 判断借款是否逾期 234 117 将简易输入的日期转换为标准日期 236 118 计算付款日期 238 119 计算当月天数 240 120 显示本次打开档案的时间 241 121 判断机器是否需要检修 243 122 自动生成离职员工工资结算日期 245 123 计算支付货款日期 247 124 计算员工离职之前在公司工作的月数 250 125 根据入职日期计算员工带薪年假的天数 251 ◎工作日函数 253 126 计算员工的工龄(精确到月份) 253 127 计算工作的完成时间 255 128 计算本月的工作日数目 257 ◎星期函数 258 129 计算法定假日的星期 258 130 计算付款时间 262 131 计算某员工每日的工资 264 132 按周汇总产品出入库数量 266 133 自动生成考勤周报表的标题 268 134 罗第45周的日期 270 ◎时间函数 272 135 计算临时加班的员工的工资 272 136 计算员工今日的计时工资 274 137 计算员工的平均速度 277 138 根据完成任务时间计算奖惩金额 280 139 根据通信时间计算本月总话费 282 140 在时间日期数据中提取时间或日期 285 Chapter 05 文本函数应用实例 287 ◎字符串转换函数 288 141 换行显示库存量及是否需要进货 288 142 将文本数字转换为数值并计算利润 290 143 从身份证号码中提取员工的性别信息 292 144 从身份证号码中提取员工的生日信息 294 145 快速恢复以科学计数法显示的商品条形码 296 146 将数字金额转换为人民币大写 298 147 将日期转换为中文大写 301 148 将员工提成工资转换为会计格式 302 149 根据工作年限计算员工年终奖 304 150 快速将数字转换为电话号码格式 306 151 将成本保留两位小数后再求和 308 152 将应收款显示为“万元”并添加¥符号 309 153 将全角字符转换为半角字符 310 154 计算混合字符串之中字母的个数 312 155 将半角字符转换为全角字符 313 156 计算混合字符串之中汉字的个数 314 157 将单词的首字母转换为大写 315 158 将所有单词转换为小写形式 317 159 将英文句子的首字母转换为大写其余小写的形式 318 160 将所有单词转换为大写 320 161 统计软件名称中英文字母的个数 321 162 将区域中的文本串联 323 163 为公式添加说明 324 164 用简易图表表示销量情况 326 ◎文本合并比较函数 327 165 在数值结果左侧添加“¥”符号 327 166 在身份证号码中提取员工的出生年月信息 329 167 提取月利润最高的前三种产品的名称 330 168 判断实习员工是否可以继续考察 331 ◎查找与替换函数 334 169 根据产品规格计算产品的体积 334 170 通讯录单转3 336 171 将15位身份证号码升级为18位 338 172 升级产品型号 340 173 将专业/年级/班级/名称分开 341 174 从软件名称中提取软件的版本号 343 175 统计各部门的员工人数 345 176 提取姓名和省名 347 ◎获取字符串函数 348 177 从地址中提取省名 348 178 通过身份证号码计算年龄 350 179 将金额分散填充 351 180 从开支明细中提取金额 354 181 从卡机数据中判断员工所属分公司及部门 355 182 从卡机数据中提取时间并判断是否迟到 357 183 根据身份证号码统计男性员工人数 358 184 在不规范格式的日期数据中提取日期 360 ◎除去格 362 185 将英文句子规范化 362 186 分别提取省/市/县名称 363 Chapter 06 逻辑函数应用实例 365 ◎真假值判断函数 366 187 判断员工性别信息是否正确 366 188 判断员工是否全勤 367 189 判断员工是否可以直接晋升 369 190 判断员工身份证号码位数是否正确 370 191 根据年龄判断员工是否退休 371 192 判断员工是否符合晋升条件 373 193 判断员工是否升职 375 194 统计月利润中文本型数字的个数 376 195 判断商品的盈利情况是否良好 377 196 根据员工工资计算员工的个人所得税 379 ◎条件判断函数 381 197 根据员工的各项考核成绩判断员工是否合格 381 198 判断员工是否需要补考 382 199 判断员工是否缺考 383 200 查询员工是否享受夜班补贴 385 201 计算员工12月工资 387 202 汇总商品的销售额 388 203 为办公物资采购表建立归类标签 391 204 在有学生全部缺考的情况下计算学生的平均成绩 392 Chapter 07 查找和引用函数应用实例 394 ◎查找函数 395 205 查询指定员工缺勤次数 395 206 根据考核成绩评定员工考核等级 396 207 根据员工姓名查找员工编号 398 208 查询指定厂家提供的某种产品的价格 400 209 查询商品最新单价 401 210 根据员工编号或者姓名查找提成工资 403 211 根据员工姓名和编号查找员工信息 406 212 根据职务和工龄计算年限工资 408 213 根据产品名称的拼音生成产品编号 410 214 根据本月收入查询应采用税率和速算扣除数 413 215 查找某销售员某月的销售业绩 415 216 制作员工工牌 416 217 查询最后入职的员工 418 218 查询某员工是否为本公司人员 419 219 计算员工的工作项数 421 220 制作周营业额排行榜 423 221 根据员工考核成绩进行排名 427 222 罗各省参展名单 429 223 罗本周多次迟到的员工 432 224 根据库存编号查询库存信息 433 225 查询员工应得福利费 437 226 计算员工测评总分 439 227 查询六月值夜班最多的员工 441 228 罗每个名次上的员工姓名 442 229 根据达标率计算不同工种员工的奖金 445 230 根据关键字查找所有符合的商品 447 231 根据员工档案详表制作简表 452 232 提取格式混乱的日期中的月份 454 233 计算业务员的业绩奖金 456 234 评定面试结果 460 ◎引用函数 461 235 为员工档案填充序号 461 236 求员工第几次的测试成绩最好 463 237 将中文日期转换为标准格式日期 465 238 每10种商品汇总一次利润 467 239 为上半年生产统计表中填充周次 470 240 统计员工的缺勤情况 471 241 拆分合并单元格 473 242 统计某公司某周的工作事项 476 243 多区域统计业绩50万元以上的销售员人数 477 244 求3个车间的最高平均产量 479 245 返回指定时间段的销售额 480 246 求最大签单业绩所在单元格 482 247 求指定车间的最大产量 483 248 汇总签单业绩 484 249 按品种编号 486 250 根据单价表和销量表汇总销售额 488 251 计算最近N天的销售额 490 252 自动生成工资条 491 253 查询员工福利相关信息 493 254 计算最低购入价格 495 255 查询员工档案中的最后一个记录 496 256 提取不重复的姓名 499 257 交换表格行 500 ◎超链接函数 501 258 快速返回工作表首行 501 259 快速跳转至添加员工信息处 503 260 在工作表中直接使用百度搜索 505 Chapter 08 财务函数应用实例 507 ◎投资预算函数 508 261 整存整取 508 262 零存整取 509 263 计算各项投资的金额 510 264 年金现值的计算 511 265 不同计息期现值的计算 513 266 设备更新投资分析 515 267 选用甲设备的最低使用年限 518 268 求银行存款年利率 519 ◎本金和利息函数 520 269 偿债基金的计算 520 270 固定期限的银行贷款分析 522 271 求等额分期付款每期的本、息及本息和 524 272 求等额本金付款每期的本、息及本息和 526 273 选择最佳还贷方案 529 ◎折旧函数 533 274 使用直线折旧法计算固定资产折旧 533 275 使用固定余额递减法计算资产折旧 537 276 使用双倍余额递减法计算资产折旧 540 277 使用年数总和法计算资产折旧 544 278 使用可变余额递减法计算资产折旧 547 Chapter 09 信息函数应用实例 550 ◎IS()类函数 551 279 查询指定员工最大缺勤次数 551 280 转换面试结果表达方式 553 281 标记考核成绩达到A级的员工 557 282 按编号汇总库存量 559 283 统计男性员工人数 560 284 统计一季度出入库总量 562 285 求员工服务态度平均分 564 286 统计字符串中不重复的字母个数 566 287 罗参与两个项目和一个项目的员工 568 288 统计生产人员人数 571 ◎信息类函数 574 289 显示当前工作表路径 574 290 计算员工累计积分 576 291 从明细表中提取数据 577 292 从未知格式日期中提取月份 581 Chapter 10 数据库和三角函数应用实例 584 ◎数据库函数 585 293 统计各车间平均生产成本 585 294 统计竹盐产品平均售价 587 295 统计一、二车间第二季度生产总成本 589 296 求满足条件的商品的总利润 591 297 求2班的最高平均分 593 298 求平均工龄以下员工的最高工资 595 299 判断可否选派二级教师 599 300 查询符合条件的员工姓名 601 301 统计所有考核均合格的员工数 602 ◎三角函数 605 302 计算定制锅炉的直径 605 303 计算扇形材料的弧长 606 304 绘制简单三角函数图像 608 305 绘制复杂三角函数图像 610 306 判断三角形材料是否满足条件 612 Chapter 11 函数与其他Excel功能结合应用 614 ◎条件格式中函数的应用 615 307 使工作表能自动隐藏错误值 615 308 标记销量最大的10种商品名称 616 309 标示第一季度销售额均在2000元以上的员工 619 310 在高于平均成绩的姓名后添加标识 621 311 3天内行程提示 624 312 根据关键字标识商品信息 626 313 多条件控制工资的显示 627 314 按模糊条件标示符合条件的记录 632 ◎数据有效性中函数的应用 633 315 禁止输入重复的员工编号 633 316 多条件限制员工编号输入 636 317 利用数据有效性生成二级表 639 318 四级下拉表的制作 644 319 将已输入的数据作为数据源 650 ◎图表中函数的应用 653 320 制作一季度产品的动态销量图 653 321 制作区域销量的动态子母图 656 322 制作销量的动态分类统计图 661 323 制作最近一周的销量图 663 324 制作收支瀑布图 666 325 制作可比较任意产品产量的柱形图 669 326 制作细分柱形图 673 327 制作双色柱形图 675 328 制作动态复合饼图 678 329 突出显示图表中的极值 683 330 高亮显示光标选定数据 685 ◎数据透视表中函数的应用 688 331 获取数据透视表关键字 688 332 计算分类百分比 689 333 为排名进行星级评定 690 ◎模拟分析中函数的应用 692 334 求可变利率下每月的还贷额 692 335 求不同利率和还款期限下的月还款额 694 336 贷款方案分析 696 337 应聘员工工资要求分析 699 ◎规划求解中函数的应用 701 338 确定产品的最佳运输方案 701 339 确定最佳生产方案 704 ◎迭代计算中函数的应用 708 340 自动记录填写产品入库记录的时间 708 341 罗铝材下料方案 711 Chapter 12 Excel 2013特有函数介绍及其应用实例 715 001 返回数字的反余切值 716 002 返回数字的反双曲余切值 716 003 返回角度的正割值 717 004 返回角度的双曲正割值 717 005 返回角度的余切值 717 006 返回双曲角度的双曲余切值 718 007 返回角度的余割值 718 008 返回角度的双曲余割值 719 009 将罗马数字转换为阿拉伯数字 719 010 将数字转换为具备给定基数的文本表示 720 011 将数字的文本表现形式转换为十进制数 720 012 向上舍入数字到指定基数的倍数 721 013 向下舍入数字到指定基数的倍数 722 014 向上舍入数字到指定有效位的倍数 722 015 返回给定数目的项的组合数 723 016 返回指定维度的单位矩阵 723 017 使用二项式分布返回试验结果的概率 724 018 返回伽玛函数值 724 019 返回比指定标准正态累积分布函数值小0.5的值 725 020 返回对象总数中给定数据的排数 725 021 返回标准正态分布的密度函数值 726 022 返回数据集分布的不对称度 726 023 返回两个日期之间的天数 727 024 返回给定日期在全年中所处的周数 727 025 将数字转化为文本格式并添加$符号 728 026 以与区域设置无关的方式将文本转换为数字 728 027 将给定数值转化为对应的Unicode字符 729 028 返回给定文本第一个字符对应的Unicode数字 729 029 判断公式结果是否为错误值#N/A 730 030 返回所有参数的逻辑异或 730 031 以字符串的形式返回公式 731 032 返回投资到达指定值所需的期数 731 033 返回投资增长的等效利率 732 034 检查单元格引用是否包含公式 732 035 返回引用工作表的工作表编号【SHEET()】 733 036 返回引用中的工作表总数 733 037 返回两个数的按位“与”结果 733 038 返回两个数的按位“或”结果 734 039 返回两个数值的按位“异或”结果 734 040 返回向左移动指定位数后的数值 735 041 返回向右移动指定位数后的数值 735 042 返回复数的余切值 736 043 返回复数的余割值 736 044 返回复数的正割值 736 045 返回复数的正切值 737 046 返回复数的双曲正弦值 737 047 返回复数的双曲余弦值 737 048 返回复数的双曲正割值 738 049 返回复数的双曲余割值 738 050 返回复数的平方根 738 051 返回URL编码的字符串 739 052 返回XML内容中的特定数据 739 053 返回网络上的Web服务数据 740 案例.001 计算任务的持续时间 740 案例.002 计算法定节日是全年的第几周 742 案例.003 处理员工姓名查找不到的情况 743 附录A 函数语法格式速查 745 1.逻辑函数 745 2.统计函数 745 3.数学和三角函数 750 4.日期和时间函数 752 5.文本函数 752 6.财务函数 754 7.查找和引用函数 757 8.信息函数 758 9.数据库函数 759

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧