检查某件事是否按日期完成

时间:2011-03-04 18:16:43

标签: php mysql

我打算安装PHP / MySQL。基本上,我想知道最好的方法是什么,或者更有效的方法来解决这个问题。

我在考虑获取当前月份(PHP),将其与通过IF语句的最近付款进行比较。那些没有付款的人会回应没有支付全部金额的复杂数字。

我将使用while循环来累加公寓大楼的总数,然后将其与rent_total进行比较。如果total_paid小于rent_total,它将显示为未付款。

apt_payments

  • ID(INT)
  • resident_name(VARCHAR)
  • complex_number(SMALLINT)
  • 金额(DECIMAL [10,2])
  • payment_date(DATETIME)
  • apt_complex

  • ID(INT)
  • complex_number(SMALLINT)
  • type(VARCHAR)
  • start_lease(DATE)
  • end_lease(DATE)
  • rent_total(DECIMAL [10,2])
  • 空缺(INT)
  • 1 个答案:

    答案 0 :(得分:0)

    未经测试,但是:

    SELECT cplx.*, amtPaid
    FROM apt_complex cplx
    LEFT JOIN (
         SELECT sum(amount) as amtPaid, 
                year(payment_date) as payYear, 
                month(payment_date) as payMonth, 
                complex_number 
         FROM apt_payments
         GROUP BY complex_number, year(payment_date), month(payment_date)
    ) payments ON payYear = [YEAR] AND payMonth = [MONTH] 
                AND payments.complex_number = cplx.complex_number
    

    我认为这样的事情会给你一份所有公寓的清单以及他们当月支付的金额。您可以在PHP中循环结果,并决定根据值amtPaidrent_total打印您想要的任何内容。

    您还可以在查询中添加CASE语句并检查其中的付款。然后查询可以简单地返回付费或未付款。 [YEAR][MONTH]应该替换为MySQL中的日期调用,或者让PHP将月/年放入查询中。我不想假设你看哪个月。