几个月后找到平均工资 - MySQL [英] Find the average salary several months back - MySQL
本文介绍了几个月后找到平均工资 - MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试制作代码,但不知何故显示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屋!
查看全文