oracle查询工资表人员加入集团后第一个月的收入
在工资表A中,有字段 a,b,c,d。a字段存放主键,b字段存放姓名,c存放日期d,存放工资。
现在我要查询所有人第一次发放的钱是多少,如何查询?
SELECT * FROM (SELECT * FROM A order by c,d) WHERE rownum=1;
但是只能查询一条,应该如何修改?
你要的是每个人第1次发工资额还是需要汇总。
首先你需要有一个员工主表B(m,n 分别记录员工姓名和入职日期),记录员工的入职日期,且B中n为不可重复的,也就是在A表中有一个外部关键字是B表中的关键字。
1,每个人第一次的。
select a,b,d from A,B where A。c=B。m and TO_CHAR(A。c,'YYYY-MM')=TO_CHAR(B。n,'YYYY-MM');
其他的方法比较复杂,使用分析函数也可以做。
2,使用分析函数。
SELECT A。b,A。d from A wehere A。b||A。c in (select o||p from (SELECT b o, Min(c) p FROM A GROUP BY b));
另,你的SQL使用rownum=1,当然只能查一条记录了,而且排序方式也不对。
问:工资表我想问一下工资表如何做凭证?如果人员只是几个的话,就把工资表第二联做为原始凭证吗?
答:把有员工签字的那一联作为记帐作证。 支付时 借:应付工资 贷:现金 计提时 借:管理费用-工资 其他应收款-代扣保险、基金 应交税金-个人所得税 贷:应付工资详情>>
答:计划将市场由北美拓展至中东、欧洲、加拿大等光伏价值市场,维持并提升北美市场份额。详情>>
答:证券:股票、债券、基金、保险、信托 其中债券是最难的,华尔街名言:博士做债券、本科做股票 其他金融投资:房产、汽车金融详情>>
答: 1、学会节流。工资是有限的,不必要花的钱要节约,只要节约,一年还是可以省下一笔可观的收入,这是理财的第一步; 2、做好开源。有了余钱,就要合理运用,使之...详情>>