几个月后找到平均工资 - MySQL [英] Find the average salary several months back - MySQL

查看:138
本文介绍了几个月后找到平均工资 - MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想找到8个月前开始工作的员工的平均工资。



我尝试制作代码,但不知何故显示NULL ..

  SELECT AVG(salary)FROM Staff 
WHERE salary = DATE_SUB(sWDate,INTERVAL 8 MONTH);

一切都在此表中。



任何人都可以帮我吗?我不知道我做错了什么谢谢。

解决方案

为什么 salary = DATE_SUB(sWDate,INTERVAL 8 MONTH)



在8个月内

  SELECT AVG(salary)FROM Staff 
WHERE sWDate< = NOW()AND sWDate> = DATE_SUB(Now(),INTERVAL 8 MONTH);





另一个:

  SELECT AVG(salary)FROM Staff 
WHERE sWDate< = NOW()AND sWDate> = DATE_ADD(Now(),INTERVAL -8 MONTH);





PS:根据 sWDate 中的日期格式,最好格式化 Now()得到精确的结果。否则,您可以使用年/月



例如:



$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% m')
AND Date_Format(sWDate,'%Y-%m')> = Date_Format(DATE_ADD(Now(),INTERVAL -8 MONTH),'%Y-%m';


I want to find the average salary of the staffs who started work within 8 months ago.

I tried making the code but somehow it's displaying NULL..

SELECT AVG(salary) FROM Staff  
WHERE salary = DATE_SUB(sWDate, INTERVAL 8 MONTH);

Everything is within this table.

Can anyone help me out please? I'm not sure what I've done wrong. Thanks.

解决方案

Why salary = DATE_SUB(sWDate, INTERVAL 8 MONTH)?

WITHIN 8 MONTHS:

SELECT AVG(salary) FROM Staff  
WHERE sWDate <= NOW() AND sWDate >= DATE_SUB(Now(), INTERVAL 8 MONTH);

Another:

SELECT AVG(salary) FROM Staff  
WHERE sWDate <= NOW() AND sWDate >= DATE_ADD(Now(), INTERVAL -8 MONTH);

PS: It's best that you format Now() according to the date format you have in sWDate to get precise results. Otherwise you can use Year/Month.

e.g.:

SELECT AVG(salary) FROM Staff  
WHERE Date_Format(sWDate,'%Y-%m') <= Date_Format(NOW(),'%Y-%m') 
AND Date_Format(sWDate,'%Y-%m') >= Date_Format(DATE_ADD(Now(), INTERVAL -8 MONTH), '%Y-%m';

这篇关于几个月后找到平均工资 - MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆