爱问知识人 爱问教育 医院库

oracle查询工资表人员加入集团后第一个月的收入

首页

oracle查询工资表人员加入集团后第一个月的收入

在工资表A中,有字段 a,b,c,d。a字段存放主键,b字段存放姓名,c存放日期d,存放工资。 
现在我要查询所有人第一次发放的钱是多少,如何查询?
SELECT * FROM (SELECT * FROM A order by c,d) WHERE rownum=1;
但是只能查询一条,应该如何修改?

提交回答

全部答案

    2018-03-01 16:44:09
  •   你要的是每个人第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,当然只能查一条记录了,而且排序方式也不对。

    断***

    2018-03-01 16:44:09

类似问题

换一换
  • 个人理财 相关知识

  • 投资理财知识
  • 投资理财问题解决
  • 投资理财

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):