Mysql 如何按月检查付款

Mysql 如何按月检查付款,mysql,sql,Mysql,Sql,我正在创建一个简单的gim系统付款提醒计算部分。我想得到那些没有支付当月金额的人的结果,他们的姓名需要显示。到目前为止我所尝试的,我附在下面 成员表格 id mno pname dob 1 e001 john 1991.12.3 2 e002 steve 1987.11.3 3 e003 sunm 1986.11.31 4 e004 jeba 1981.1.3 id mno paydate

我正在创建一个简单的gim系统付款提醒计算部分。我想得到那些没有支付当月金额的人的结果,他们的姓名需要显示。到目前为止我所尝试的,我附在下面

成员表格

id   mno    pname       dob 
1   e001   john     1991.12.3
2   e002   steve     1987.11.3
3   e003   sunm     1986.11.31
4   e004   jeba      1981.1.3
id   mno     paydate       amount     months
1   e001   2020-12-14      20000       12 
付款表格

id   mno    pname       dob 
1   e001   john     1991.12.3
2   e002   steve     1987.11.3
3   e003   sunm     1986.11.31
4   e004   jeba      1981.1.3
id   mno     paydate       amount     months
1   e001   2020-12-14      20000       12 
月表12表示-12月month我得到了当月的SQL代码
month(getdate())

我试着这样问

  SELECT Member.mno
    ,Member.pname
    ,payment.amount
FROM Member
LEFT JOIN payment ON Member.mno = payment.mno
WHERE payment.amount IS NULL
    AND payment.months = MONTH(getdate())

当我运行查询时,没有得到任何结果。我想得到那些没有支付当月金额的人的结果,他们的姓名需要显示。上述查询有什么问题?

您需要将条件从
WHERE
子句移动到
ON
子句,如下所示:

SELECT MEMBER.MNO,
       MEMBER.PNAME,
       PAYMENT.AMOUNT
  FROM MEMBER LEFT JOIN PAYMENT ON MEMBER.MNO = PAYMENT.MNO
                                AND PAYMENT.MONTHS = MONTH(GETDATE())
 WHERE PAYMENT.AMOUNT IS NULL

谢谢,先生。如何检查付费人员姓名`WHERE PAYMENT.AMOUNT为NULL`-->`WHERE PAYMENT.AMOUNT不为NULL`----或将查询转换为使用内部联接并省略WHERE子句。。。。。。。。。。。先生每个月都能成功完成此任务每月(GETDATE())它会自动更改月份并检查付款是的,每个月都能完成Hanks先生…………您的问题标记为“mysql”,但代码不会在mysql中运行。