VF 第6章 实验报告
2
VF 第6章 实验报告
一、单表查询练习 1、查询病人的姓名和年龄,用“年龄”作为列标题,并按年龄降序排列。 输入语句: select 姓名,year(date())-year(出生日期) as 年龄 from patient order by 年龄 desc 2、查询处于工作中的女医生的全部信息。 输入语句: select * from doctor where 性别="女" and 工作中=.t. 3、查询处方表所含的各种药品编号、药名以及总数量。 输入语句: select distinct 药品编号,药品名称,sum(数量) as 总数量 from prescription group by 药品编 号,药品名称 4、 查询病人表中的病人属于几个科室。 输入语句: select count(distinct 所属科室) from patient 5、 查询处方表金额(价格*数量)排在前三位的药品编号、医生编号和金额。 输入语句: select top 3 药品编号,医生编号, 价格*数量 as 金额 from prescription order by 金额 desc 6、 在病人表中查询每个医生看病人数并列出医生编号。 输入语句: select 主治医生,count(病人编号) from patient group by 主治医生
实 验 步 骤 及 结 果
7、 查询 D003 医生所开药品的总金额和医生编号。 输入语句: select 医生编号,sum(数量*价格) as 总金额 from prescription where 医生编号="D003" 8、 查询“白”姓 女病人的信息。 输入语句: select * from patient where 姓名 like"白%" and 性别="女" 二、内、外连接练习 1、查询 40 到 50 岁的病人姓名,所属的科室名。 输入语句: select patient.姓名, department.科室名 from patient inner join department on patient.所属科 室=department.科室编号 where year(date())-year(出 生日期) >= 40 and year(date())-year(出生日 期)<=50
2、查询每位病人的姓名、性别、所开药品的总金额(价格*数量) 。输入语句: select 姓名,性别,sum(prescription.价格*数量) as 总金额 from patient inner join prescription on patient.病人编号=prescription.病人编号 group by 病人编号
VF 第6章 实验报告
3、列出所有 doctor.dbf 中的医生信息及其所看病人信息。 输入语句: select * from doctor left join patient on doctor.医生编号=patient.主治医生 group by patient.主 治医生 4、Medicine 表的所有药品的药品编号,药名,数量(标题为 “库存” )以及该药品被医生开出的 金额合计(标题为“总金额”,用价格*数量求得) 输入语句: select medicine.药品编号,medicine.药品名称,库存,sum(prescription.价格*数量) as 总金额 from medicine left join prescription on medicine.药品编号=prescription.药品编号 group by prescription. 药品编号 三、 嵌套查询 1、 用 not in 和 not exist 两种方法查询 prescription 表还没有开出的 medicine 表的药品信息。 输入语句:(not in ) select * from medicine where 药品编号 not in (select 药品编号 from prescription ) 输入语句
:(not exists ) select * from medicine where not exists (select * from prescription where prescription.药品编号 =medicine.药品编号)
实 验 步 骤 及 结 果
2、查询超过 M004 库存(数量)的药品信息。 输入语句: select * from medicine where 库存>all(select 库存 from medicine where 药品编号="M004") 四、本地视图建立练习 1、建立工作中的医生信息视图 V1 输入语句: create view v1 as select * from doctor where 工作中=.t. 2、 建立各科室病人数、平均年龄视图 V2,列出科室、病人数、平均年龄。 输入语句: create view v2 as select 科室名,count(病人编号) as 病人数,avg(year(date())-year(出生日期))as; 平均年龄 from patient inner join department on department.科室编号=patient.所属科室 group by 科室 名 3、 建立各科室医生视图 V3,列出科室名称、医生姓名,性别。 输入语句: create view v3 as select 科室名,姓名,性别 from doctor inner join department on doctor.科室 =department.科室编号 4、 建立库存量(字段为“数量” )小于 300 的药品编号和药名及数量视图。 输入语句: create view v4 as select 药品编号,药品名称,库存 from medicine where 库存<300
VF 第6章 实验报告
五、本地视图使用练习 1、用 V1 查询工作中的医生信息 输入语句: select * from v1 2、用 V2 查询病人平均年龄排在前两位的各科室病人、病人数、平均年龄。 输入语句: select top 2 *from v2 order by 平均年龄 3、用 V3 查询不同科室的男女医生人数,列出科室名称、性别,医生数。 输入语句: select 科室名,性别,count(姓名) as 医生数 from v3 group by 性别 4、查询库存量小于 300 的药品编号和数量视图。 输入语句: select * from v4 六【附加题】 用一个带有 4 个 page 的页框实现以下 4 个查询,这里给出各页的编辑和运行界面,请据此编程, 保存为 sy6 步骤: (1)添加页框,页数为 4,标题分别为“按科室查询、按医生查询、按病人查询、按药 品查询” (2)设置数据环境,将所需的表放到数据环境中 (3)添加文本框,标题为“科室编号、医生编号、病人编号、药品编号” (4)添加列表框,设置数据类型为字段,数据源为所需表 (5)添加表格,数据源为 temp 表 (6)添加命令按钮,标题为“查询” ,编写程序 1. 按科室查询(选中 list 框中科室和查询按钮,查询科室医生和病人情况) 步骤: “查询”按钮事件代码设计: this.parent.grid1.recordsource="" select department.科室编号,department.科室名,doctor.姓名; count(patient.病人编号) as 病人数; from doctor, department, patient where department.科室编号=doctor.科室; and doctor.医生编号=patient.主治医生; and department.科室编号=alltrim(this.parent.list1.value) group by doctor.医生编号 into cursor temp; this.parent.g
rid1.recordsource="temp" thisform.refresh 2、按医生查询(查询医生所开药品情况) 步骤: “查询”按钮事件代码设计: this.parent.grid1.recordsource="" select doctor.医生编号,姓名,doctor.性别,药品名称,价格, sum(prescription.数量) as 数量; from doctor, prescription;
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科VF 第6章 实验报告(2)全文阅读和word下载服务。
相关推荐: