友恒通有限公司
目 录
第一篇 Sql常用命令的使用 .......................................................................................................... 2
第一节 4条常用命令 .............................................................................................................. 2
一、select 命令 ............................................................................................................... 2 二、delete 命令 .............................................................................................................. 5 三、update 命令 ............................................................................................................ 6 四、insert命令(表必须存在) ......................................................................................... 7 第二节 函数 ............................................................................................................................. 8
一、聚合函数 ................................................................................................................... 8 二、系统函数 ................................................................................................................... 9 三、游标函数 ................................................................................................................. 11 四、日期时间函数 ......................................................................................................... 11 五、数学函数 ................................................................................................................. 12 六、字符串函数 ............................................................................................................. 12 第三节 SET ............................................................................................................................. 13 第四节 控制流语言 ............................................................................................................... 13 第五节 常用系统存储过程 ................................................................................................... 15 第六节 表、存储过程的创建 ............................................................................................... 16 第二篇 如何制作外挂报表 ........................................................................................................... 18
第一节 编写相关的存储过程 ............................................................................................... 18
一、存储过程的标准格式 ............................................................................................. 18 二、报表书写的常见问题 ............................................................................................. 19 三、常用报表的取数方法 ............................................................................................. 26 第二节 制作报表模板 ........................................................................................................... 31
一、页面设置 ................................................................................................................. 32 二、快速制表法 ............................................................................................................. 32 三、手工制表法 ............................................................................................................. 32 四、其他 ......................................................................................................................... 36 第三节 报表外挂 ................................................................................................................... 36
一、关于外挂报表的使用授权 ..................................................................................... 36 二、关于参数提示设置 ................................................................................................. 37 三、关于参数类型设置 ................................................................................................. 37
第三篇 远程控制 ......................................................................................................................... 39
第一节 pcAnywhere的安装 ............................................................................................... 39 第二节 pcAnywhere的设置 ............................................................................................... 41
第一部分 通过局域网对远程计算机的控制 ............................................................... 42 第二部分 通过宽频ADSL对远程计算机的控制 ...................................................... 48 第三部分 通过MODEN对远程计算机的控制 ......................................................... 49 第三节 QQ的远程协助功能 ............................................................................................... 52
第 1 页 共 53 页
友恒通有限公司
第一篇 Sql常用命令的使用
第一节 4条常用命令 一、select 命令
虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下: SELECT [DISTINCT] [TOP n] select_list [INTO new_table_name] FROM table_list
[WHERE search_conditions]
[GROUP BY [ALL] group_by_list] [HAVING search_conditions]
[ORDER BY order_list [ASC | DESC] ]
1、select_list描述结果集的列。它是一个逗号分隔的表达式列表。每个表达式同时定义格式(数据类型和大小)和结果集列的数据来源。每个选择列表表达式通常是对从中获取数据的源表或视图的列的引用,但也可能是其它表达式,例如常量或 Transact-SQL 函数。在选择列表中使用 * 表达式指定返回源表中的所有列。
select hzxm,zje-yhje zje,substring(jsrq,1,8) rq ,case when jszt=1 then ”中途结帐” else “出院结帐” end 类型,* from ZY_BRJSK
where jsrq between ‘20050101’ and ‘2005011024’ and ybjszt=2 and jlzt in (0,1,2)
2、 在系统中,可能有多个对象带有相同的名称。例如,ZY_BRJSK 和 ZY_BRSYK都指定了syxh等列。若要解析多义性并且指定 syxh为 ZY_BRJSK 所有,请至少使用用户 ID 来限定表的名称,如:ZY_BRJSK.syxh。
或者使用别名,如table_name AS table alias和table_name table_alias
如:
select a.*
from ZY_BRSYK as a,ZY_BRJSK b where a.syxh=b.syxh
and b.jsrq between ‘20050101’ and ‘2005011024’ and ybjszt=2 and jlzt in (0,1,2)
3、以 @local_variable = expression 形式的变量赋值,如果 SELECT 语句返回多个值,
第 2 页 共 53 页
友恒通有限公司
则将返回的最后一个值赋给变量。如果 SELECT 语句没有返回行,变量将保留当前值。 declare @syxh int select @syxh=syxh from ZY_BRJSK where xh=@xh
4、 DISTINCT 关键字可从结果集中除去重复的行。 select ksdm,count(distinct blh) rs from VW_MZBRJSK
where sfrq between '20031201' and '2003121024' and ybjszt=2 and jlzt in (0,1,2) group by ksdm
5、TOP 关键字指定返回结果集的前 n 行。TOP n [PERCENT],返回前n%的记录 select top 10 ghdwmc 供货单位,sum(jjje) as 进价金额 from YK_YPRKZD
where jzrq between '20040101' and '2004011024' and jzbz in (1,2) and gzbz=0 group by ghdwmc
order by 进价金额 desc
注:如果查询包含 ORDER BY 子句,将输出由 ORDER BY 子句排序的前 n 行(或前百分之 n 行)
6、INTO new_table_name
指定使用结果集来创建新表。new_table_name 指定新表的名称。
创建一个使用 IDENTITY 属性的新列(select into ),注意列名的4种写法
select identity(int,100,1) as 序号,blh \病历号\病人姓名,性别=sex into #temp from ZY_BRSYK
where ryrq between '20040220' and '2005022124'
7、 From: 指定在 DELETE、SELECT 和 UPDATE 语句中使用的表、视图、派生表和连接表。 如果表或视图存在于同一服务器的其它数据库中,应按格式 database.owner.object_name如果表或视图存在于本地服务器之外的一台链接的服务器上,应按以下格式使用由四部分组成的名称:linked_servername.database.owner.object_name
与其他服务器的连接:sp_addlinkedserver 其他服务器名。
视图提示只能用在 SELECT 语句中,而不能用于 UPDATE、DELETE 或 INSERT 语句。 Where 中 *= , =*的使用
8、WHERE 子句是一个筛选,它定义了源表中的行要满足 SELECT 语句的要求所必须达到的条件。只有符合条件的行才向结果集提供数据。不符合条件的行中的数据不会被使用。 1)Between ?and ?.的使用
第 3 页 共 53 页
友恒通有限公司
Where zje between 0 and 500 [0,500] 等同于zje>=0 and zje <=500 Where zje not between 0 and 500 >500 or <0
2)常用子查询的语句
? ?
WHERE expression [NOT] IN (subquery) WHERE [NOT] EXISTS (subquery)
Select * from ZY_BRJSK
where jsrq between '20031201' and '2003121024' and ybjszt=2 and jlzt in (0,1,2) and ybdm in (select ybdm from YY_YBFLK where pzlx='12') 或:
Select *
from ZY_BRJSK a
where jsrq between '20031201' and '2003121024' and ybjszt=2 and jlzt in (0,1,2) and exists (select 1 from YY_YBFLK b where a.ybdm=b.ybdm and pzlx='12')
3) Like /not like ,通配符:%、_、[]、[^] Select * from YK_YPRKZD
Where rkrq like '20050101%'
9、GROUP BY 子句和 ALL 关键字
只有在 SELECT 语句还包括 WHERE 子句时,ALL 关键字才有意义。
列出所有进过货的单位:
select ghdwmc 供货单位,sum(jjje) as 进价金额 from YK_YPRKZD
where jzrq between '20040101' and '2004011024' and jzbz in (1,2) and gzbz=0 group by all ghdwmc 列出满足条件的单位:
select ghdwmc 供货单位,sum(jjje) as 进价金额 from YK_YPRKZD
where jzrq between '20040101' and '2004011024' and jzbz in (1,2) and gzbz=0 group by ghdwmc
10、使用 HAVING 子句选择行
WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。 GROUP BY 子句用来分组 WHERE 子句的输出。 HAVING 子句从中间结果集对行进行筛选。
带聚合函数的 HAVING 子句 select hzxm,sum(zje)
第 4 页 共 53 页
友恒通有限公司
from ZY_BRJSK
where jsrq between '20050101' and '2005011024' and ybjszt=2 and jlzt in (0,1,2) group by hzxm
having sum(zje)>10000
不带聚合函数的 HAVING 子句 SELECT hzxm FROM ZY_BRJSK
where jsrq between '20050101' and '2005011024' and ybjszt=2 and jlzt in (0,1,2) GROUP BY hzxm
HAVING hzxm LIKE '张%'
11、order by ?. [ ASC | DESC ]
对结果集排序。ASC 和 DESC 关键字用于指定行是按升序还是按降序排序。使用union时,只能对最后结果排序。
12、union
UNION 运算符使您得以将两个或多个 SELECT 语句的结果组合成一个结果集。使用 UNION 组合的结果集都必须具有相同的结构。而且它们的列数必须相同,并且相应的结果集列的数据类型必须兼容。
UNION 运算符从结果集中删除重复的行。如果使用 ALL 关键字,那么结果中将包含所有行并且将不删除重复的行。
Select hzxm,sum(zje) zje from ZY_BRJSK
where jsrq between '200312101' and '2003121024' and ybjszt=2 and jlzt in (0,1,2) group by hzxm union
Select '合计',sum(zje) from ZY_BRJSK
where jsrq between '200312101' and '2003121024' and ybjszt=2 and jlzt in (0,1,2) order by sum(zje)
二、delete 命令
DELETE 语法的简化形式为: DELETE table_or_view [FROM table_sources ] [WHERE search_condition ]
1、删除全部行
Delete #temp = TRUNCATE TABLE #temp
如果要删除在表中的所有行,则 TRUNCATE TABLE 比 DELETE 快。DELETE 以物理
第 5 页 共 53 页