当查询一个列表的时候获取此列表id结果作为另一个sql的是否存在的条件处理

问题需求重现:“如果一个学员,已经填写了班车信息,就把操作那两个字改成修改”

当查询一个列表的时候获取此列表id结果作为另一个sql的是否存在的条件处理。


原来列表sql

SELECT S.BACK_ID,
       S.S_CLASS_INFO_ID,
       S.BACK_NAME,
       TO_CHAR(S.END_DATE, 'yyyy-mm-dd HH24:mi'),
       S.PROMPT_INFO
  FROM S_CLASS_BACK_MAIN S
 WHERE (S.IS_PUB = 'Y' OR S.PUB_DATE > SYSDATE)
   AND S.IS_DEL = 'N'
   AND S.S_CLASS_INFO_ID = 566



查看此back_id和此人user_id是否存在记录

        SELECT SCBO.OPTION_ID, SCBO.BACK_DESC,scbo.back_id
          FROM S_CLASS_BACK_USER   SCBU,
               S_CLASS_BACK_OPTION SCBO,
               S_CLASS_BACK_MAIN   SCBM
         WHERE SCBU.USER_ID = 44075
           AND SCBU.OPTION_ID = SCBO.OPTION_ID
           AND SCBO.BACK_ID = SCBM.BACK_ID
           AND SCBM.BACK_ID = 1142




综合在一个sql来写(避免在遍历主list得到back_id时候再去sql查询数据库,这样数据多了会很慢,影响效率)

         SELECT S.BACK_ID,
                S.S_CLASS_INFO_ID,
                S.BACK_NAME,
                TO_CHAR(S.END_DATE, 'yyyy-mm-dd HH24:mi'),
                S.PROMPT_INFO,
                nvl(to_char(tempResult.Option_Id),'null') AS isExist
           FROM S_CLASS_BACK_MAIN S,(SELECT SCBO.OPTION_ID, SCBO.BACK_DESC,scbo.back_id
          FROM S_CLASS_BACK_USER   SCBU,
               S_CLASS_BACK_OPTION SCBO,
               S_CLASS_BACK_MAIN   SCBM
         WHERE SCBU.USER_ID = 44075
           AND SCBU.OPTION_ID = SCBO.OPTION_ID
           AND SCBO.BACK_ID = SCBM.BACK_ID) tempResult
          WHERE (S.IS_PUB = 'Y' OR S.PUB_DATE > SYSDATE)
            AND S.IS_DEL = 'N'
            AND S.S_CLASS_INFO_ID = '566'
            AND tempResult.Back_Id(+)=s.back_id


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 SQL基础 1.1 基本概念 结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行的信息查询,select。 1.2.2 数据操作语言(DML) 用于操作关系型数据库对象内部的数据,insert、update、delete。 1.2.3 数据定义语言(DDL) 用来建立及定义数据、字段以及索引等数据库结构,create、alter、drop 。 1.2.4 数据控制语言(DCL) 用于控制对数据库里数据的访问,通常用于创建与用户访问相关的对象以及控制用户的权限,grant、revoke(撤销)。 1.2.5 事务控制命令(TPL) 用于管理数据库事务,commit、rollback、savepoint(在一组事务里创建标记点以用于回退)。 1.3 的构成 1.3.1 字段 字段是里的一列,用于保持每条记录的特定信息 1.3.2 记录 记录,也被成为一行数据,是里的每一行 1.4 完整性的约束条件 1.4.1 实体完整性 关系模型的实体完整性在create table中用primary key约束实现,primary key约束用于定义主键,它保证主键的唯一性和非空性。 1.4.2 参照完整性 关系模型的参照完整性可以通过在create table中用foreign key (<外键>) references <被参照名> (<与外键对应的主键名>)进行约束定义。 1.4.3 用户定义完整心 在create table语句中可以根据应用要求,定义属性以及元组上的约束。 常见的用户定义的完整性约束有: not null或null约束。 unique约束:唯一性约束。 default约束:默认值约束。 check约束:检查约束,check约束通过约束条件达式设置列值应该满足的条件。 1.5 范式 1.5.1 第一范式 1.5.1.1 规范 无重复的列,确保每列保持原子性,即数据库中的所有字段值都是不可分解的原子值。 1.5.1.2 举例 姓名 年龄 联系电话 地址 省 市 详细地址 1.5.2 第二范式 1.5.2.1 规范 属性完全依赖于主键,确保中每列都与主键相关。 1.5.2.2 举例 订单 订单Id 商品Id 总金额 商品名称 001 1 10 苹果 001 2 10 橘子 联合主键订单Id、商品Id => 商品 商品Id 商品名称 单价 订单 订单Id 总金额 1.5.3 第三范式 1.5.3.1 规范 属性不依赖于其它非主属性,确保数据中的每一列数据都和主键直接相关,而不能间接相关,即要求一个数据库中不包含已在其它中已包含的非主关键字信息。 1.5.3.2 举例 党员 党员Id 党员姓名 组织Code 符合3NF 党员 党员Id 党员姓名 组织名称 不符合3NF 组织 组织Code 组织名称 1.6 外连接 1.6.1 准备 create table student_A( uuid varchar2(32), name varchar2(100)); create table student_B( uuid varchar2(32), name varchar2(100)); insert into student_A values('1','小黄'); insert into student_A values('2','小黑'); insert into student_A values('3','小红'); insert into student_B values('1','大黄'); insert into student_B values('2','大黑'); insert into student_B values('4','大红'); insert into student_B values('4','大紫'); 1.6.2 左连接(left join) 1.6.2.1 说明 查询指定的左的所有行,而不仅仅是联接列所匹配的行;如果左的某行在右中没有匹配行,则在相关联的结果集行中右的所有选择列表列均为空值。 1.6.2.2 语法 select A.*,B.* from student_A A left join student_B B on A.Uuid = B.Uuid; 1.6.2.3 结果 1.6.2.4 (+)示 select A.*,B.* from student_A A,student_B B where A.Uuid = B.Uuid(+) 1.6.3 右连接(right join) 1.6.3.1 说明 查询指定的右的所有行,而不仅仅是联接列所匹配的行;如果右的某行在左中没有匹配行,则在相关联的结果集行中左的所有选择列表列均为空值。 1.6.3.2 语法 select A.*,B.* from student_A A right join student_B B on A.Uuid = B.Uuid; 1.6.3.3 结果 1.6.3.4 (+)示 select A.*,B.* from student_A A,student_B B where A.Uuid(+) = B.Uuid 1.6.4 全外连接(full outer join) 1.6.4.1 说明 完整外部联接返回左和右中的所有行;当某行在另一个中没有匹配行时,则另一个的选择列表列包含空值;如果之间有匹配行,则整个结果集行包含基的数据值。 1.6.4.2 语法 select A.*, B.* from student_A A full outer join student_B B on A.Uuid = B.Uuid; 1.6.4.3 结果 1.6.4.4 全外连接不支持(+)写法 1.6.5 (+) + 示补充,即哪个有加号,这个就是匹配。 1.7 运算符 1.7.1 比较 =、>,<,>=,<=,!=,<>, 1.7.2 确定范围 between and 、not between and 1.7.3 确定集合 in、not in 1.7.4 字符匹配 like(“%”匹配任何长度,“_”匹配一个字符) 1.7.5 转义字符 1.7.5.1 常规转义字符 “\”转义字符,“\%”则示单纯的字符“%” 1.7.5.2 escape escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。 select * from Student_a where name like '%$%%' escape '$'; 1.7.6 空值 is null、is not null 1.7.7 集合查询 union(并)、intersect(交)、minus(差) 1.7.8 多重条件 and、or、not 1.7.9 对查询结果分组 <group by 列名> 1.7.10 分组筛选条件 [having <条件达式>] 1.7.11 字符串拼接 select 'A' || 'B' from dual; // || 拼接 1.8 函数 1.8.1 聚集函数 count、sum、avg、max、min 1.8.2 case when 1.8.2.1 语法 select t.uuid, t.score, case when t.score > 90 then '优秀' when t.score > 60 then '及格' else '不及格' end from exam_user_exam t 1.8.3 decode 1.8.3.1 语法 select decode(x,1,'x is 1', 2 , 'x is 2','others') from dual 1.8.3.2 说明 当x等于1时,则返回‘x is 1’,当x等于2时,则返回‘x is 2’,否则,返回‘others’。 1.8.4 nulls first(nulls last)排序 1.8.4.1 语法 select * from dy_info t order by t.degree nulls first 1.8.4.2 说明 控制null显示行位置 1.8.5 Nvl 1.8.5.1 语法 select nvl(t.sap,'空') from dy_info t; 1.8.5.2 说明 如果sap号为空,则返回‘空’,否则返回sap号。 1.8.6 递归查询 1.8.6.1 语法 select t.* from g_organ t start with t.organcode = '080' connect by prior t.parentcode = t.organcode; //递归查询父节点 select t.* from g_organ t start with t.organcode = '080' connect by t.parentcode = prior t.organcode; //递归查询子节点 1.8.7 union 和 union all 1.8.7.1 语法 select * from dual union all select * from dual 1.8.7.2 说明 union 会对查询数据进行去重并排序,union all只是简单的将两个结果合并。 1.8.8 wm_concat 1.8.8.1 语法 select wm_concat(t.role_name) from g_role t where t.role_name like '%书记%' 1.8.8.2 说明 拼接字符串,结果为:‘党工委副书记,总支副书记,党支部书记,党委书记,党委副书记,党总支书记,党工委书记,党总支副书记,党支部副书记’ 1.8.9 相似度 1.8.9.1 语法 select utl_match.edit_distance_similarity('aaaaa','bbaaaa') from dual; 1.8.10 去格式 1.8.10.1 oracle正则达式:去除<></>格式 select REGEXP_REPLACE(title,'<[^>]*>','') title from exam_question 1.8.11 rank() over (partition by …) 1.8.11.1 语法 select organcode,score,ranknum from ( select t.organcode, t.score, rank() over (partition by t.organcode order by t.score desc) ranknum from exam_user_exam t) where ranknum < 4 1.8.11.2 说明 获取每个组织,考试成绩前三名。 1.9 存储过程 1.9.1 定义 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 1.9.2 准备 create table t_user ( username varchar2(20), password varchar2(20) ); create table t_user_temp ( username varchar2(20), password varchar2(20) ); insert into t_user(username,password) values('小王','1111'); insert into t_user(username,password) values('小李','1111'); 1.9.3 创建存储过程 create or replace procedure adduser as begin insert into t_user_temp(username,password) select username,password from t_user t where t.username = '小李'; end adduser; 1.9.4 执行 begin adduser; end; 1.9.5 验证 select * from t_user; select * from t_user_temp 2 SQL深入 2.1 常用 2.1.1 空间 2.1.1.1 创建空间 create tablespace TS_DJY datafile 'd:/software/oracle/tablespace/ts_djy.dat' size 1024M autoextend on next 100M maxsize 2048M; 2.1.1.2 指定用户空间 alter user cssdj default tablespace TS_DJY; 2.1.1.3 指定空间 create table t_student( uuid varchar2(32) )tablespace TS_DJY; 2.1.2 自增sequence 2.1.2.1 创建 create sequence seq_student_uuid minvalue 1 maxvalue 999999999999999 start with 1 increment by 1 nocache; 2.1.2.2 使用 select seq_student_uuid.nextval from dual; //获取一个 select seq_student_uuid.currval from dual; //获取当前 2.1.3 批量插入 2.1.3.1 查询结果批量插入 insert into tablea(cola,colb) select cola,colb from tableb; 2.1.3.2 创建相同的结构并插入数据(备份数据) create tab_new as select * from tab_old; 2.1.3.3 创建相同的结构不插入数据 create tab_new as select * from tab_old where rownum=0; 2.1.4 伪列伪 2.1.4.1 伪列 伪列不是的真实列,但是你可以象使用真实列一样使用伪列,常用伪列:rowid行的绝对物理编号,每一行是唯一的。rownum序号,返回查询结果的每行序号。系统时间sysdate,返回系统当前时间。 2.1.4.2 伪 select * from dual; 2.1.5 系统 2.1.5.1 user_tables 当前用户信息 2.1.5.2 user_tab_columns 当前用户所有列信息,搜索列所在的: select * from user_tab_columns t where t.column_name like '%ORGANCODE%'; 2.1.5.3 user_tablespaces 当前用户空间 2.1.5.4 dba_users 数据库所有用户 2.1.5.5 dba_tables 数据库所有 2.1.5.6 dba_tablespaces 数据库所有空间 2.1.6 锁解锁 2.1.6.1 查看锁信息 select l.OBJECT_ID,s.SID,s.SERIAL#,s.USERNAME, s.MACHINE from V$locked_Object l,V$session s where l.SESSION_ID = s.SID; 2.1.6.2 解锁 alter system kill session 'sid,serial#'; 2.1.7 备份与恢复 2.1.7.1 导出 导出用户: exp cssdj/cssdj@zr owner=(cssdj,cssdj_zsy) file=d:/cssdj.dmp log=d:/cssdj.log 导出用户: exp cssdj/cssdj@zr tables=(g_dict,g_dict_item) file=d:/cssdj.dmp log=d:/cssdl.log 2.1.7.2 导入 imp cssdj/cssdj@zr fromuser=cssdj_zsy touser=cssdj file=d:/cssdj.cmp log=d:/cssdj.log 2.1.7.3 数据泵 2.1.8 Dblink 2.1.8.1 创建 create database link orcllink connect to cssdj identified by cssdj using '(DESCRIPTION = (ADDRESS_LIST= (ADDRESS=(PROTOCOL = TCP)(HOST = 219.239.110.65)(PORT = 1521))) (CONNECT_DATA=(SID = orcl)))'; 2.1.8.2 删除 drop database link orcllink; 2.1.8.3 使用 select * from dy_info@orcllink; 2.2 Oracle与Mysql差异 2.2.1 Group by 2.2.1.1 Oracle select后面出现的列,如果没有使用集合函数,必须出现在group by 中。 select sno,sname,sum(grade) from student group by sno,sname; //合法写法 select sno,sname,sum(grade) from student group by sno; //非法写法 select sno,min(sname),sum(grade) from student group by sno; //建议用这种写法,效率高些 2.2.1.2 Mysql select sno,sname,sum(grade) from student group by sno,sname; //合法写法 select sno,sname,sum(grade) from student group by sno; //合法写法 2.2.2 分页 2.2.2.1 Oracle 使用rownum来明分页位置,而且rownum只能小于某值,不能大于某值,故而rownum和where联用才能完成数据范围的控制 2.2.2.2 Mysql mysql的分页可以用limit startNum,pageNum 2.3 了解 2.3.1 事务 2.3.1.1 Rollback start transaction; --开始事务 insert into g_dict values('test','测试','1',''); --执行数据操作语言(DML) select * from g_dict where code = 'test'; --可以查看是否执行正确 rollback; --错误执行rollback操作 commit; --正确执行commit操作 2.3.1.2 Savepoint start transaction; --开始事务 insert into g_dict values('t1','测试','1',''); --执行数据操作语言(DML) savepoint pointA; insert into g_dict values('t2','测试','1',''); --执行数据操作语言(DML) select * from g_dict where code = 'test33'; --可以查看是否执行正确 rollback to savepoint pointA; 2.3.2 利用执行计划评估SQL语句的性能 2.3.2.1 工具 在PL/SQL Developer中写好一段SQL代码后,按F5,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。 2.3.2.2 查看总COST,获得资源耗费的总体印象 一般而言,执行计划第一行所对应的COST(即成本耗费)值,反应了运行这段SQL的总体估计成本,单看这个总成本没有实际意义,但可以拿它与相同逻辑不同执行计划的SQL的总体COST进行比较,通常COST低的执行计划要好一些。 2.3.2.3 了解执行计划的执行步骤 按照从左至右,从上至下的方法,了解执行计划的执行步骤; 执行计划按照层次逐步缩进,从左至右看,缩进最多的那一步,最先执行,如果缩进量相同,则按照从上而下的方法判断执行顺序,可粗略认为上面的步骤优先执行。每一个执行步骤都有对应的COST,可从单步COST的高低,以及单步的估计结果集(对应ROWS/基数),来分析的访问方式,连接顺序以及连接方式是否合理。 2.3.2.4 分析的访问方式 的访问方式主要是两种:全扫描(TABLE ACCESS FULL)和索引扫描(INDEX SCAN),如果上存在选择性很好的索引,却走了全扫描,而且是大的全扫描,就说明的访问方式可能存在问题;若大上没有合适的索引而走了全扫描,就需要分析能否建立索引,或者是否能选择更合适的连接方式和连接顺序以提高效率。 2.3.2.5 分析的连接方式和连接顺序 的连接顺序:就是以哪张作为驱动来连接其他的先后访问顺序。 的连接方式:简单来讲,就是两个获得满足条件的数据时的连接过程。主要有三种连接方式,嵌套循环(NESTED LOOPS)、哈希连接(HASH JOIN)和排序-合并连接(SORT MERGE JOIN)。我们常见得是嵌套循环和哈希连接。 嵌套循环:最适用也是最简单的连接方式。类似于用两层循环处理两个游标,外层游标称作驱动,Oracle检索驱动的数据,一条一条的代入内层游标,查找满足WHERE条件的所有数据,因此内层游标中可用索引的选择性越好,嵌套循环连接的性能就越高。 哈希连接:先将驱动的数据按照条件字段以散列的方式放入内存,然后在内存中匹配满足条件的行。哈希连接需要有合适的内存,而且必须在CBO优化模式下,连接两的WHERE条件有等号的情况下才可以使用。哈希连接在的数据量较大,中没有合适的索引可用时比嵌套循环的效率要高。 2.3.3 优化器 Oracle优化器分为基于规则的优化器(RBO)和基于代价的优化器(CBO)。 2.3.3.1 规则的优化器(RBO) RBO的优化方式,依赖于一套严格的语法规则,只要按照规则写出的语句,不管数据和索引的内容是否发生变化,不会影响PL/SQL语句的"执行计划"。 2.3.3.2 基于代价的优化器(CBO) CBO计算各种可能"执行计划"的"代价",即cost,从中选用cost最低的方案,作为实际运行方案。各"执行计划"的cost的计算根据,依赖于数据中数据的统计分布,ORACLE数据库本身对该统计分布是不清楚的,须要分析和相关的索引,才能搜集到CBO所需的数据。 2.3.4 分析analysis 2.3.4.1 说明 analyze table,一般可以指定分析、所有字段、所有索引字段、所有索引,若不指定则全部都分析。 2.3.4.2 分析 analyze table dy_info compute statistics; 2.3.4.3 删除分析数据 analyze table dy_info delete statistics; 2.3.5 oracle添加强制索引 如果使用的是CBO的话,可能SQL不执行索引,则可以添加强制索引执行索引。 2.3.5.1 语法 /*+index(tablename indexname)*/ 2.3.5.2 举例 select /*+index(t INDEX_SAP)*/* from dy_info t where t.sap = 'T6000890'
经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的创建新: A:create table tab_new like tab_old (使用旧创建新) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果(例如 TABLE1 和 TABLE2)并消去中任何重复行而派生出一个结果。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接的匹配行,也包括左连接的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT
1.安装与启动 第1步、一卡通系统硬件的安装及网络组建 确保一卡通(消费)系统设备、网络已按要求安装布建完毕。有关更多网络布建及设备安装信息,请参见随机光盘内附有设备的《硬件说明书》及《快速操作手册》,请先按说明书内所述内容进行设备的安装与组网。 第2步、安装数据库平台 您使用的一卡通系统兼容Microsoft® SQL Server™和Microsoft® Office Access两种数据库格式。若您想软件拥有多人联网控制功能,那请先在服务器上安装好Microsoft® SQL Server™ 2000或2005版数据库管理软件。 如果您想软件具备联网控制功能,请先在主机上安装Microsoft SQL Server数据库。Microsoft SQL Server的具体安装说明请查看:SQL Server安装光盘内《SQL Server安装帮助》:\books\ setupsql。 第3步、安装一卡通系统软件 1) 将一卡通软件安装光盘插入 CD-ROM 驱动器,该光盘不自动运行,双击该光盘根目录中的 图标,进入安装程序。 2) 进入安装程序界面,点下一步可进入安装目录选择区域。09版一卡通软件的默认安装路径为“C:\Program File\一卡通09\”,您可根据您的使用习惯和实际使用需要更改安装目录。选择好安装目录后点下一步,再点安装。安装程序将自动运行安装。 注意: 1、一卡通管理系统及SQL Server数据库尽量不要安装在系统盘; 2、SQL Server不建议使用空密码。 3) 全部安装完毕后,运行桌面快捷方式启动软件。 2.快速配置系统参数 进入系统配置向导模块,可协助用户快速对系统进行配置。 系统快速配置指南与常见配置问题解释 1) 数据库配置:可自选择使用Access或MS-SQL数据库,默认为Access。当选择为MS-SQL时,需要在数据源处输入SQL Server服务器IP(本机使用默认的local则可)、用户ID数据SQL Server用户名、用户密码输入SQL Server密码完成配置。注意,在客户端远程访问服务器数据库时,可能出现能PING通,但连接数据库时提示连接超时或数据库不存在,这时可通过windows命令行模式下输入网络命令:“telnet 服务器IP地址 1433”,回车后若看到黑色一片,则网络设置正常,可能是SQL本身没有安装好或者没有打SP4补丁;若提示连接失败,则可能是路由器、防火墙限制了网络访问; 2) 一卡通管理系统软件要求系统识别码必须正确,否则无法正常使用。用户如不清楚系统识别码,可向设备供应商询问; 3) 通讯配置:通讯端口设置默认为1示使用COM1通讯(串口通讯时才有效),用户可根据实际情况自行修改。通讯波特率固定有线系统为19200,无线系统为38400; 4) 卡型号与发卡器:发卡器型号默认R100CU2(匹配USB读卡器使用),若是串口读卡器,型号则选择R100C。发卡器端口为对应串口,一般串口读卡器选择电脑串口(一般是COM1),若是USB读卡器,安装驱动程序后,可以在 “我的电脑”右键→“管理”→“设备管理器”→“端口(COM与LPT)” 内,看到一个USB-Serial CH341(COM X),X代一个COM号,假设为COM3,则在发卡器端口内设置为端口3。注意,某些客户在安装USB读卡器时,可能出现无法识别的USB设备,这是由于主板USB供电不足造成的,可尝试把电脑所有USB设备拔掉,再使用电脑后方的主USB口。如果还是提示无法识别的USB设备,请更换电脑; 5) 发卡类型:通常默认为一卡通卡。若使用门禁读头发卡才选择 “门禁卡”; 6) 大功能选择:可选消费、考勤、门禁三大系统,若不选择,则该功能完全屏蔽无法使用; 7) 消费模式:可选储值、补贴、挂帐、计次、订餐五大类,请正确选择。 3.人事资料与发卡操作 输入用户名密码,运行软件。 3.1人事资料的添加及发卡操作 人事资料的添加及发卡操作指南 1) 点 “资料设定”→“人事资料”→“添加” 进入人员信息添加界面。里面的编号默认为系统中人员的唯一识别号,系统默认自动以递增编号的方式自动进行编号,您可根据您的实际情况修改和填写,但注意人员编号必须唯一不能重复; 2) 人事资料添加窗口内的部门、职位等信息可通过点击 “..” 按钮直接添加; 3) 点下一个按钮完成一个人的人卡资料添加并继续操作下一个,全部完成后点确认退出; 4) 人事资料添加完毕后,可直接选择未发卡人员,点鼠标右键→发卡,或通过 “卡片中心”→“发卡”,选择未发卡人员,点鼠标右键→发卡完成操作。 3.2人事资料的导入 点 “资料设定”→ “资料导入”,进入导入参数设置,根据您的Excel格式的人事资料文档实际情况填写对应的Excel的列。如Excel内列A是姓名,B是编号,则只需要在人员编号里输入B,在姓名里输入A则可。 Excel格 导入数据文件支持格式:XLS。系统必须安装Microsoft Office 2000或以上版本才能完成数据导入操作。软件不支持WPS办公软件,也不支持Excel 2007的XLSX格式。 必选项 人员编号、姓名、部门三项信息为必选项,导入数据前应准备的格也需至少包含这四类信息对应的列。 起始行 导入前还需确认格文件内信息起始行,假设格内含有头等其它非相关信息的行,需在资料是从第_____行开始内输入起始行再进行导入。 3.3批量发卡 点 “卡片中心”→“批量发卡” 进入人员信息添加界面。在批量发卡功能模块内,默认会把所有未发卡人员添加到待发卡列表,用户只需要点击 “开始发卡” 按钮就可以按列表顺序,一次过把所有未发卡直接发完。 如果未发卡人员较多,需要按部门为顺序(或自定义顺序)进行发卡,则可以先点 “移除全部”按钮,把所有待发卡人员移去,再点部门,把本次需要发卡的人员重新添加到待发卡人员列表中,点 “开始发卡” 按钮就可以按列表顺序进行发卡操作。 4.设备配置 1) 点 “设备管理”→“设备配置” 进入设备配置界面;注意,在设备配置前,消费系统建议先把消费机编号修改成唯一编号,修改方法请详细参见《消费机硬件说明书》或《消费机快速操作指南》; 2) 在“默认通讯”页面,先配置好通讯参数。通讯参数包括: 串口通讯 通讯端口选择好电脑用于通讯的串口的号码 通讯波特率固定为有线19200,无线38400 串口连接注意 设置不正确的通讯端口在通讯时可能导致系统无法正常通讯及采集数据 TCP/IP通讯 输入TCP/IP-RS485转换器IP地址(IP地址可通过专门软件获取) 端口一般默认为50000,用户可通过配置软件修改转换器通讯端口,一般建议使用默认 TCP/IP连接 注意事项 在TCP/IP通讯时,同样可能出现能PING通,但连接数据库时提示连接超时或数据库不存在,这时可通过windows命令行模式下输入网络命令:“telnet 转换器IP地址 50000”,若提示连接失败,则与路由器、防火墙配置有关 3) 配置完毕后,可输入设备编号,通过 “通讯测试” 功能进行设备通讯情况调试,具体操作方式及描述见下: RS485及TCP/IP网络质量测试操作指南 所有消费机组网联网、修改好设备编号、配置好上述通讯配置后,把消费机全部连接到网络上,然后进行设备通讯情况测试,测试时把每一台消费机设备编号在“机号”处输入,然后点通讯测试进行联网通讯(布线质量)测试,测试一般发送1000个包,点停止后可看到通讯质量。若通讯质量无法达到100%,请遵循下整改建议: 通讯质量 布线整改建议 0.00% 网络完全不通,建议: 1、 检查计算机通讯端口与收发器端口是否相符、通讯波特率是否正确; 2、 检查设备类型、设备编号是否正确; 3、 RS485线路是否符合规范,网络有没有短路或开路现象; 4、 RS485转换器与电脑串口间接线是否有问题; 5、 RS485与设备通讯接口是否已经接好,设备是否在开机状态 95%以下 网络不稳定,建议: 1、 RS485线路是否符合规范,网络有没有短路(铜线毛刺造成的短路)现象; 2、 RS485转换器与电脑串口间接线是否有问题(端口是否接紧了); 3、 设备RS485通讯端口(水晶头)制作是否符号568B标准(检查压好了没); 4、 检查通讯线路是否过远,请调整网络结构并在末端接上120Ω终端电阻; 5、 网络接线时,采用了非标准总线接线方式 95%以上 网络不太理想,但还可以接受。建议在网络末端接上120Ω终端电阻或更换更好的RS485转换器 100% 网络稳定没通讯丢包现象 无线网络质量测试操作指南 所有消费机修改好设备编号,收发器、中继器通好电,配置好上述通讯配置后,进行设备通讯情况测试,测试时把每一台消费机设备编号在“机号”处输入,路由信息配置好(配置方法见下),然后点通讯测试进行联网通讯(布线质量)测试,测试一般发送1000个包,点停止后可看到通讯质量。若通讯质量无法达到90%,请遵循下整改建议。 A、路由信息配置方法:在路由信息输入框里有10个“0”,其中每两位为一组,即:00 00 00 00 00。其中第一组的为第一个中继编号,第二组为第二个中继编号,依此类推。设置时,例如现有一台无线收发器和一台无线一卡通终端设备,从收发器到一卡通终端设备必须经过一个编号为1的无线中继器,那么路由信息数字第一组的00改为01;从收发器到一卡通终端设备必须先经过一个编号为1的无线中继器再经过一个编号为11的无线中继器,那么路由信息数字第一组的00改为01,第二组的00改为11,如右图所示;依此类推。 B、通讯优化整改建议: 通讯质量 建议 0.00% 网络完全不通,建议: 1、 检查计算机通讯端口与收发器端口是否相符、通讯波特率是否正确; 2、 检查设备类型、设备编号是否正确; 3、 检查无线设备是否已经全部接好且处于正常通电状态; 4、 检查无线路由设置信息有没有设好; 5、 检查通讯距离是否过远 75%以下 网络不稳定,建议: 1、 检查无线路由设置信息有没有设好; 2、 检查通讯距离是否符合标准; 3、 检查设备安装位置是否符合标准 75%-90% 网络不够理想,建议: 1、 检查并调整无线设备安装位置; 4) 所有网络调整完毕,设备通讯达到要求后,可通过 “自动搜索新设备” 页面,把所有设备自动搜索出来并完成设备添加工作; 5) 设备添加完毕后,请立即点击 “连接测试”、“校对时间”、“下载密码” 三个按钮进行时间校对及IC卡密码下载工作; 6) 设备添加完毕后,消费机默认名称为“消费机+设备编号”,如1号消费机则默认名字消费机1,建议所有消费机名称都修改好,比如1号窗、2号窗等,这样有利于优化报查询,分类统计信息也更为丰富,为食堂老板提供有效的决策支持。 5.消费管理 5.1消费场所设置 消费场所主要体现于消费系统中。系统内默认消费场所名称为“食堂1”。我们建议用户在安装调试好消费机后,根据不同地方餐厅或消费点划分为各个不同区域的消费点,如1楼食堂、2楼食堂、超市等都可以单独划分消费场所。划分后有利于优化报查询,分类统计信息也更为丰富,方便您在日后生成对消费报的各类统计。 1) 点 “消费管理”→“消费场所设置” 进入消费场所设置界面,点添加按钮,输入消费场所名字,确认后完成添加操作; 2) 把该场所内对应消费机添加进去,若刚刚的消费机名字为1号窗口、2号窗口等,添加后立即可在各消费报内看到效果:场所(1楼食堂),下属消费机(1号窗、2号窗)。 5.2餐别资料设置 餐别资料设置用餐时间及每个餐别对应的收费价格类别。每个餐别最大可设置3个金额类别,每天可设置最多4个餐别(早餐、中餐、晚餐、宵夜)。餐别时间系统根据常规使用自动创建,用户也可根据自己使用情况自行修改。 1) 点 “消费管理”→“餐别资料设置” 进入设置界面,双击修改,按实际情况输入金额及开餐时间,修改后点保存关闭。 注意,有时候用户反映营业收入统计内金额与消费机内当天统计金额不符,这是由于餐别时间设置有误造成的,错误原因为两点,见下: 错误设置1 餐别时间设置范围为00:00-23:59,不能跨日设置。因此有时候设置成20:00-03:00等时间时,因设置无效导致报错误。 错误设置2 假设早餐在系统内设置时间为07:00-09:00,但实际食堂07:00前开餐,此时采集数据后,在营业收入统计内07:00前的消费不纳入早餐统计范围。 5.3补贴设置 09版消费系统支持补贴发放功能。补贴发放功能可使用读卡器进行发放,或使用专门补贴机进行发放。 1) 点 “消费管理”→“补贴设置” 进入补贴设置界面,在补贴类型处右键→ “增加” ,输入补贴名称、补贴金额,设置补贴有效期及选择补贴钱包类型(可选主钱包追加、副钱包追加、副钱包覆盖三种),设置后点保存退出; 设置项 项描述 主钱包追加 设置补贴金额追加进主钱包内(领取补贴时,已追加形式追加到主钱包中,此时实际存款与补贴金额可能无法区分) 副钱包追加 设置补贴金额追加进主钱包内 副钱包覆盖 设置补贴金额覆盖副钱包内原有金额 注意,副钱包补贴默认最大650.00元,可通过消费设备参数设置,把补贴单位从分改为角,则可支持最大6500.0元。一般建议使用副钱包补贴。消费设备参数设置具体内容,详见本文6。 2) 增加补贴类型后,需要进行人员绑定操作。单击补贴类型、选取可领取补贴的人,双击鼠标左键(或选择部门、全体,点添加所有按钮),点保存完成设置; 3) 在人员列表处选择人员右键→查看补贴情况,可看到该人员所有补贴领取情况。 4) 补贴设置完毕后,持卡人可领取补贴。领取补贴方法有两种:1、通过软件补贴数据上传功能把补贴上传至补贴机,然后人员持卡到补贴机上刷卡补贴;2、通过软件领取补贴功能,在读卡器上读卡领取补贴。 补贴数据的上传(有补贴机时) 选择消费补贴管理菜单补贴名单上传,选择要上传的补贴机及补贴类型,点上传即可。 注意:  每次设置补贴前请先进行数据采集;  上传补贴有覆盖和增加两个按钮,覆盖是先清空补贴机上原有补贴再把本次补贴上传至设备。增加上传不改变原有补贴情况下把本次补贴上传至设备;  补贴上传时,若遇到通讯超时,可再次上传该补贴,但必须注意此时不能使用覆盖上传,只能使用增加上传;  已上传的补贴,在未领取补贴人员名单内可看到状态“已上传补贴机”,点解冻按钮,状态回到原本的“未领取”状态,可重新进行上传。 补贴的领取(没补贴机时) “卡片中心”→“领取补贴”→“读卡”→“补贴”。 6.消费参数配置 消费机参数设置对系统至关重要。消费机参数设置模块内,可对所有消费设备及消费扩展设备包括消费机、订餐机、补贴机、充值机等进行功能配置。新设备进行系统配置、联网调试、完成设备添加、编号修改、下载密码后,在使用前应先进行消费机参数设置,通过配置定义消费机各功能组合项目。 1) 点 “消费管理”→“消费设备参数设置” 进入设置界面; 2) 在右侧设备列表栏点选一台消费机或任意,然后点读取数据,设置完毕后点写入设备完成设置。注意,读取数据与写入设备按钮有两组,其中上方的读取数据与写入设备按钮功能为读取/写入机能内全部可设置数据,下方的按钮则只读取当页信息。 6.1消费设备参数设置项详解 项 项描述 限制方式 可选择限餐及按日、按周、按月进行消费限制 注意:限餐只允许每餐次消费一次,按日、按周、按月三类限制可设置限期内最大消费次数0-255,最大消费金额0-650,其中0为不限制 按餐别时间规则定义消费机允许消费餐别时间段; 按日限制时间以当天0:00-23:59为有效限制时间; 按周限制时间为从消费限制设置当天开始计算后推7天为有效限制时间; 按月限制时间为当月为有效限制时间。 当选择为限餐时,请启用刷卡时段检查,否则设置无效 重复刷卡检查 定义IC卡多少秒内不允许重复刷卡,可防止定额状态时多刷卡情况 卡内最大允许金额 可设置限制数值0-650 当设置项为0时,消费机不限制卡内余额 刷卡分组检查及分组标识 若启用刷卡分组检查,请选择消费机对应允许刷卡的分组标识 刷卡分组功能可通过预先定义好的分组资料对吃饭人员进行分组操作,假设A员工定义分组为A,B员工定义分组为B,在消费机上启用刷卡分组后,A员工只能在分组为A的消费机上刷卡,B员工只能在分组为B的消费机上刷卡。 系统支持最大可定义15个分组。 刷卡时段检查 若启动刷卡时段检查,请切换到消费时段,并选择消费机允许消费的餐别时间段。 启用刷卡时段检查后,消费机自动进入定额消费模式且锁键盘,到预定时间后消费机显示金额自动切换改变,时段外消费机不工作。 钱包设置 仅主钱包(读卡时只读取主钱包内金额,不读取副钱包内金额;消费时只消费主钱包内金额,主钱包内余额不够扣款也不消费副钱包内金额) 主钱包优先(读卡时先读取主钱包内金额,再读取副钱包内金额;消费时优先消费主钱包内金额,主钱包内余额不够扣款后再消费副钱包内金额) 仅副钱包(读卡时先读取副钱包内金额,再读取主钱包内金额;消费时先消费副钱包内金额,副钱包内余额不够扣款也不消费主钱包内金额) 副钱包优先(读卡时先读取副钱包内金额,再读取主钱包内金额;消费时优先消费副钱包内金额,副钱包内余额不够扣款后再消费主钱包内金额) 消费类型 可选正常消费、订餐消费两项。 若系统内有订餐,请选择订餐消费,其余选择正常消费 名单类型 可切换名单类型。 当前为黑名单:消费名单被视为黑名单,不允许消费 当前为白名单:消费名单被视为白名单,允许消费 黑名单检查 检查(名单类型当前为黑名单时必选) 白名单检查 检查(名单类型当前为白名单时必选) 消费模式 可选金额消费、计次消费两项目切换。 选择为计次消费模式时,消费机为计次消费模式,消费只记录次数,不进行扣款 刷卡时间间隔 两张不同卡刷卡时,之间的时间间隔,建议不检查 挂帐标志 是否允许挂帐,挂帐消费模式时,请选择允许挂帐 操作密码 修改消费机管理密码 最大挂帐金额 最大允许挂帐金额限制,仅在挂帐模式时有效 消费时段 按要求设置可进行允许消费的时段,时段外消费机将不工作。 普通消费模式下启用消费时段检查,消费机将变成定额消费模式,时段内餐次金额自动切换无需人手调整。 订餐模式下则必须启用消费时段检查。 消费时段设置注意: 1、设置前请先设置后餐别资料; 2、可设置四个不同餐别,每个餐别只允许设置一个金额类型,不能重复。 菜单消费 设置菜单消费项,每一(菜单)项可对应一个金额。正常消费模式、补贴消费模式、挂帐消费模式有效 设备功能 可选择消费机及读卡器两个功能。当选择为读卡器功能时,消费机屏幕显示全F,把消费机直接通过COM口连接后,可作为串口读卡器使用。切换读卡器模式后后重启消费机即自动切换回消费机状态。 无线消费机不支持读卡器模式切换。 管理卡号 通过写入10位10进制卡号到设备后,可使用该卡作为管理卡进行锁机、解锁操作(此功能充值机有效)。 6.2各模式下消费机功能组合配置指南 1、正常消费 必要设置项 项目描述及设置建议 钱包设置 仅主钱包 消费类型 正常消费 消费模式 金额消费 黑名单检查 检查(名单类型当前为黑名单时必选) 2、按餐别时间定值消费 必要设置项 项目描述及设置建议 钱包设置 仅主钱包 消费类型 正常消费 消费模式 金额消费 黑名单检查 检查(名单类型当前为黑名单时必选) 刷卡时段检查 检查 消费时段 按要求设置可进行订餐消费的时段 消费时段设置注意: 1、设置前请先设置后餐别资料; 2、可设置四个不同餐别,每个餐别只允许设置一个金额类型,不能重复。 3、挂帐消费 关键设置项 项目描述及设置建议 钱包设置 主钱包优先 注意:挂帐消费模式不能选择副钱包优先,否则消费机先挂帐,再扣款 消费类型 正常消费 消费模式 金额消费 黑名单检查 检查 挂帐标志 允许挂帐 最大挂帐金额 可设置0-650,其中0为挂帐无效,选择挂帐后默认最大挂帐金额650 4、补贴消费 关键设置项 项目描述及设置建议 钱包设置 副钱包优先 消费类型 正常消费 消费模式 金额消费 卡有效期检查 检查(设为检查后,补贴金额过期不能使用并自动切换本金消费) 黑名单检查 检查(名单类型当前为黑名单时必选) 5、计次消费 关键设置项 项目描述及设置建议 消费类型 正常消费 消费模式 计次消费 黑名单检查 检查(名单类型当前为黑名单时必选) 钱包设置 仅主钱包 刷卡时段检查 检查 消费时段 按要求设置可进行订餐消费的时段 消费时段设置注意: 1、设置前请先设置后餐别资料; 2、可设置四个不同餐别,每个餐别只允许设置一个金额类型,不能重复。 限制方式 限餐 6、订餐消费 关键设置项 项目描述及设置建议 消费类型 订餐消费 消费模式 金额消费 黑名单检查 检查(名单类型当前为黑名单时必选) 刷卡时段检查 检查 限制方式 限餐 消费时段 按要求设置可进行订餐消费的时段 消费时段设置注意: 1、设置前请先设置后餐别资料; 注意,消费机在订餐模式下,可选择两种设定: 正常订餐 正常订餐模式下,设定该消费机订餐消费的金额类别后,假设设置消费机金额类别为1,若订餐选择金额为1类,则可消费,若订其余2、3类别金额,则不能消费 非固定订餐 非固定订餐模式下,设定该消费机无论任何订餐餐别金额,都允许消费。消费时屏幕显示人员订餐金额。使用非固定订餐,需要切换到“消费金额”下,点一下刷新按钮,然后写入数据 6.3订餐机功能组合配置指南 1、常规快捷键订餐、时间段订餐 关键设置项 项目描述及设置建议 液晶屏欢迎文字 可自定义八个中文字符 刷卡时段检查 不检查 黑名单检查 检查 订餐时段限制 刷新时段 2、时段刷卡订餐(设置指定什么时间刷卡订哪一餐) 关键设置项 项目描述及设置建议 液晶屏欢迎文字 可自定义八个中文字符 刷卡时段检查 检查 黑名单检查 检查 订餐时段限制 刷新时段 订餐时段 按要求设置什么时间刷卡订哪一个餐 消费时段设置注意: 1、设置前请先设置后餐别资料; 2、可设置最多为今天早、中、晚、宵,明天早、中、晚、宵八个不同餐别,每个餐别只允许设置一个金额类型,不能重复。 7.挂失与补卡 挂失卡与上传黑名单操作 1) 点 “卡片中心”→“挂失管理” 进入卡挂失界面; 2) 鼠标选择部门、人员(也可以输入编号或姓名查询),双击人员进行挂失(解挂)操作; 3) 挂失操作后,点关闭按钮,直接提示是否上传黑名单,点“是”; 4) 对话框提示“黑名单请按是,白名单请按否,自定义按取消”,按实际情况选择,一般默认使用黑名单,选“是”; 注意:上传名单时,有“上传全部名单”和“增加名单”两个按钮可选择,上传全部是重新上传所有名单。增加上传是直接把本次操作的名单追加上去;同样,“清除全部名单”和“删除名单”功能也相类似,清除全部名单就是把消费机内已上传名单全部删除,删除名单只把本次进行解挂失的卡删除。 补卡操作 1) 点 “卡片中心”→“补办新卡” 进入补卡; 2) 双击需要补卡人员,点“读卡”→“补卡”,即完成补卡工作,补卡后原来旧卡为注销状态不能使用,旧卡内所有金额已注入新卡中。 注意:补卡有补发挂失卡与补发坏卡两个选项,补发挂失卡要求该卡必须挂失后才能补发。补发坏卡则可把已挂失或未挂失卡人员重新进行补卡工作,建议补发坏卡时要求坏卡没收; 8.消费报的查看 经典消费系统报分为三类人服务。第一类为食堂老板,他所关心的是他的食堂营业收入状态;第二类是持卡人,他所关心的是他某天的消费清单,是不是扣错款啦;第三类是出纳,他管钱的,他关心的是他每天的现金收支情况。 每一类系统使用人员,我们都有对应其专用的报。食堂老板有营业收入统计,持卡人有个人消费统计,出纳有现金收支日报。下面简单介绍一下报查看操作: 8.1营业收入统计 1) 点 “消费管理”→“营业收入统计” 进入营业收入统计界面; 2) 用户可按意愿选择日期、消费点、所属消费机、部门、餐次等,选择完毕后点查询可看到报内容。 营业收入统计用于日常食堂营业收入统计,内可按时间、餐别、消费点、消费机、部门等不同条件进行组合查询查询结果可汇总、可按日显示、也可显示明细。 营业收入统计拥有自定义报功能,可通过自定义按钮选择您需要的报信息。 输出报后,可通过导出功能把报结果导出至Excel格。 注意:营业收入统计内有一项为未处理非确定交易,非确定交易意思就是消费机未知道当次刷卡是否已经正确完成扣款操作,因此消费机内保存该卡卡号、消费时间、金额,并标记该记录为非确定交易。注意,当出现非确定交易记录时,该卡进行存款或取款、退卡等操作时,软件自动提示是否处理,点处理则自动判断非确定交易记录是否正确扣款,若没有正确扣款,则在卡上重新抵扣。 8.2个人消费统计 1) 点 “消费管理”→“个人消费统计” 进入个人消费统计界面; 2) 用户可按意愿选择日期、部门、人员、餐次等,选择完毕后点查询可看到报内容。 个人消费统计用于查询个人消费记录、状态,内可按时间、餐别、人员、部门等不同条件进行组合查询查询结果一般为个人消费明细及汇总(报若不输入人员时,默认显示全部)。 个人消费统计拥有自定义报功能,可通过自定义按钮选择您需要的报信息。 输出报后,可通过导出功能把报结果导出至Excel格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值