【问题标题】:How to Check Payment Month wise [duplicate]如何明智地检查付款月份[重复]
【发布时间】:2021-03-31 04:06:17
【问题描述】:

我正在创建一个简单的 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 

月表12表示-十二月月我得到了当月的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())

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

【问题讨论】:

  • 您的问题被标记为“mysql”,但代码不会在 MySQL 中运行。

标签: mysql sql


【解决方案1】:

您需要将条件从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 IS NULL` --> ` WHERE PAYMENT.AMOUNT IS NOT NULL` ------- 或者将您的查询转换为使用 INNER JOIN 并省略 WHERE 子句跨度>
  • 谢谢............先生。每个月都会成功 MONTH(GETDATE()) 它将自动更改月份并检查付款
  • 是的,每个月都可以使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 2012-07-30
  • 2022-01-05
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多