oracle查询工资表人员加入集团后第一个月的收入
在工资表A中,有字段a,b,c,d。a字段存放主键,b字段存放姓名,c存放日期d,存放工资。现在我要查询所有人第一次发放的钱是多少,如何查询?SELECT*FROM(SE...
在工资表A中,有字段 a,b,c,d。a字段存放主键,b字段存放姓名,c存放日期d,存放工资。
现在我要查询所有人第一次发放的钱是多少,如何查询?
SELECT * FROM (SELECT * FROM A order by c,d) WHERE rownum=1;
但是只能查询一条,应该如何修改? 展开
现在我要查询所有人第一次发放的钱是多少,如何查询?
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,当然只能查一条记录了,而且排序方式也不对.
首先你需要有一个员工主表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,当然只能查一条记录了,而且排序方式也不对.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a,b,min(c) c,d from from A order by c,d
因为日期最小的就是第一次,不知道这样对不对,不对再改好了
因为日期最小的就是第一次,不知道这样对不对,不对再改好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个分组统计了:
SELECT a,b,d,MIN(c) FROM A
GROUP BY a,b,d
SELECT a,b,d,MIN(c) FROM A
GROUP BY a,b,d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from A as A1 where c = (select min(c)
from A as A2
where A2.a = A1.a)
from A as A2
where A2.a = A1.a)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询