㈠ 请教一个列出员工出勤记录的sql语句 下面是程序抽象出来的两个表的原型
oracle写法:
select yg.mc,yg.bm,sb.cqsj,xb.cqsj from
考勤表 sb left join 考勤表 xb
on to_char(sb.cqsj,'yyyy-mm-dd')=to_char(xb.cqsj,'yyyy-mm-dd')
and sb.aid=xb.aid
left join 员工表 yg
on sb.aid=yg.id
SQL Server写法:
select yg.mc,yg.bm,sb.cqsj,xb.cqsj from
考勤表 sb left join 考勤表 xb
on convert(nvarchar(10),sb.cqsj,121)=convert(nvarchar(10),xb.cqsj,121)
and sb.aid=xb.aid
left join 员工表 yg
on sb.aid=yg.id
以上写法,如果早上未签到或者全天缺勤,那么当天此人考勤信息就查不出来。
类似你这种考勤或者日志系统,设计每天要填报数据的系统,而且还要以时间为单位用于统计的。最好加一个日期序列表,最简单要包括一个字段那就是 yyyy-mm-dd格式的日期。
表的内容就是全年每天的日期,系统上线前要加好,多弄几年,可以用存储过程或者程序都可,
主要用循环和日期函数,实现一次循环日期加一天,到某个时间退出循环即可。
作用有二:
1、查询时以这个日期序列表为做为左连接的起始表,这样如果某人今天没来,或者上午忘签到,下午忘签到,都没关系,一目了然。
2、一般这种日志系统,都提供个人或管理者历史记录查询功能,最好是有个下拉框,里面的ITEM是时间列表,内容就取自你提前建立的表。可以实现连续性的上查和下查。
虽然方法有些死板,但利远大于弊,利用程序或存储过程提前生成日期,因为循环体不涉及时间复杂计算和转换,单纯+1,所以很快的,生成10年估计用不了2分钟吧。
我做过测试生成100年日期用了十几分钟。
mysql没太接触过,LZ可自行使用mysql的时间转换字符串类型的函数,替换SQL中的相应部分即可,该部分的含义就是实现 将同一个人同一天的上下午签到时间连接成一行,所以要连接时要去掉时分秒部分。LZ可按此含义自行修改。我先下班了,赶车。
㈡ SQL语句能不能在表中添加记录语句是怎么样的
insert into 表名(字段名,字段名) values(值,值) 这是给定字段名字对应插入值insert into 表名 values(值,值,值) 这是插入全部的字段,要顺序对应的插入明白了吗,记得采纳啊
㈢ sql查询语句将职工表中的所有记录追加到职工备份表中
如果2表的记录都是一样的
insert into A select * from B
如果只是插入某些字段
insert into A(A_1,A_2) select A1,A2 from B
㈣ (单选题)向数据表中添加员工入职日期为系统当前日期,下列SQL正确的是( )。
看选项应该是Oracle了,选C。
--oracle
INSERTINTOemp(empno,hierdate)VALUES(9001,SYSDATE);
--sqlserver
INSERTINTOemp(empno,hierdate)VALUES(9001,GETDATE());
--MYSQL
INSERTINTOemp(empno,hierdate)VALUES(9001,NOW());
㈤ SQL语句查询员工表中姓名的后两个字相同的记录
select empName , count(empName)
from pubEmp
group by empName
having count(empName)>1
order by count(empName) desc
㈥ 怎么在sql数据库插入记录
方法步骤:
1、首先我们打开heidisql客户端,我们新建一个连接,如果连接的是sql server的数据库,要选择数据库的类型,端口号一般是1433如果是mysql的数据库,一般端口是3306,记住,别混了,输入用户名跟密码就能链接了。
2、打开数据库后,我们选择一个表来操作,一般表都是在左侧的,我们依次展开,从数据库到表打开想要插入数据的表。
3、在这里选择数据打开,我这里用的是heidisql汉化版的,如果是英文版的应该是data才对。
4、在这个功能栏里,我们可以看见一个加号和一个减号,加号代表的是插入一条数据,二减号正好相反。
5、点击插入数据,卡你的鼠标在那个位置,它会在这个位置的下面一条记录插入一条记录。然后我们往里面输入数据,注意数据的类型,如果数据是time时间格式的,要按时间格式填写。
6、插入成功后会提示成功了,下面的记录也会跟着变色。
7、这里也可以用命令来插入,选择查询。
8、在这个命令的窗口,我们输入sql语句,然后点击上面的蓝色按钮,然后就会执行命令,执行成功会提示插入数据成功。
9、再返回表这边看,可以看到数据插入成功了。
㈦ 用sql命令在员工表中添加自己的信息,必须包括学号,姓名
是更新吗?
update 员工表 set 学号='xxxx' ,姓名='张三' where 员工id = 12324;
插入的话:
insert into 员工表(员工id,学号,姓名,....) values(12345,'xxxx','张三',....);
㈧ SQL中员工表添加性别字段,并根据身份证号判断男女
通过身份证号判断性别 PHP代码
$idcard='341182198106160464';
function getCardSex($idcard) {
if(empty($idcard)) return null;
$sexint = (int) substr($idcard, 16, 1);
return $sexint % 2 === 0 ? '女' : '男';
}
echo getCardSex($idcard);
㈨ 写一条sql语句 有每月员工打卡记录表 table
select distinct userid,times from (select userid,count(userid) as times from table group by userid) where times<20 order by times desc
没调试,大概差不多,试试应该能用