关于考勤系统系统的,表结构如下:
create table HR_ATTENDANCE
(
ID NUMBER not null,
USERID NUMBER,
ONDUTYTIME DATE,
OFFDUTYTIME DATE,
MEMO VARCHAR2(1000)
)
ONDUTYTIME 上班时间
OFFDUTYTIME 下班时间
MEMO 备注每个员工每天只有一条记录要求得到如下结构
工号 D1上班 D1下班 D1备注 D2上班 D2下班 D2备注 ... D31备注
userid ond01 offd01 memod01 ond02 offd02 memod02 ... memoD31请问这样的sql如何写才最优化?
create table HR_ATTENDANCE
(
ID NUMBER not null,
USERID NUMBER,
ONDUTYTIME DATE,
OFFDUTYTIME DATE,
MEMO VARCHAR2(1000)
)
ONDUTYTIME 上班时间
OFFDUTYTIME 下班时间
MEMO 备注每个员工每天只有一条记录要求得到如下结构
工号 D1上班 D1下班 D1备注 D2上班 D2下班 D2备注 ... D31备注
userid ond01 offd01 memod01 ond02 offd02 memod02 ... memoD31请问这样的sql如何写才最优化?
解决方案 »
- 删除undo表空间数据库启动报ORA-01157 和ORA-01110
- oracle 条件判断问题
- 我这个Oracle存储问题出在哪里?游标问题
- for update性能问题
- oracle和sql server数据库的区别,up 有分
- 我好象配置了Net Configuration Assistant后,SQLPLUS就连接不上了,说ERROR:ORA-12560: TNS: 协议适配器错误该怎么办?
- EXECUTE IMMEDIATE问题,想请教各位
- [求助]关于SQL方面的优化问题!!!
- 如何导出建在SYSTEM表空间中的用户数据?
- 关于NUMBER型数据的问题
- sql语句的问题
- 急求oracle查询重复值sql语句
max(decode(extract(day from ondutytime),'1',ondutytime))"1号上班时间",
max(decode(extract(day from ondutytime),'1',ondutytime))"1号上班时间",
max(decode(extract(day from ondutytime),'1',memo))"备注",
max(decode(extract(day from ondutytime),'2',ondutytime))"2号上班时间",
max(decode(extract(day from ondutytime),'2',ondutytime))"2号上班时间",
max(decode(extract(day from ondutytime),'2',memo))"备注",.......
max(decode(extract(day from ondutytime),'31',ondutytime))"31号上班时间",
max(decode(extract(day from ondutytime),'31',ondutytime))"31号上班时间",
max(decode(extract(day from ondutytime),'31',memo))"备注"
from test
group by userid
/
我上面是的笨办法,看有没有大人有好的方法,或者是写成函数,小弟在此抛砖。