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;
但是只能查询一条,应该如何修改?
展开
 我来答
benson_pb
推荐于2021-01-15
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
你要的是每个人第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,当然只能查一条记录了,而且排序方式也不对.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2009-04-07 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885360
团长

向TA提问 私信TA
展开全部
select a,b,min(c) c,d from from A order by c,d

因为日期最小的就是第一次,不知道这样对不对,不对再改好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茗茶堂
2009-04-07 · TA获得超过682个赞
知道小有建树答主
回答量:346
采纳率:100%
帮助的人:0
展开全部
这是一个分组统计了:
SELECT a,b,d,MIN(c) FROM A
GROUP BY a,b,d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vsunny321
2009-04-07
知道答主
回答量:11
采纳率:0%
帮助的人:4.3万
展开全部
select * from A as A1 where c = (select min(c)
from A as A2
where A2.a = A1.a)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式