2011-03-04 86 views
0

我正計劃進行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)
  • 類型(VARCHAR)
  • start_lease(DATE)
  • end_lease(DATE)
  • rent_total(DECIMAL [10,2])
  • 空置(INT)
  • +3

    你有什麼問題嗎? – reggie 2011-03-04 18:20:43

    回答

    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將月/年放入查詢中。我不想假設你會在哪個月看。