0

私は次のMysqlテーブルを持っています

Order table 
status 0 - incomplete
status 1 - complete  

PO_invoice| Company| transactionType| Amt_Paid | Balance | Status| dateCreated|
 1001     | Astek  |               3|     10000|    10000|    0  |2012-10-15  |
 1002     | Asrack |               2|     20000|        0|    1  |2012-10-20  |  

トランザクションテーブル

お支払い方法の説明が含まれています

  • タイプ1の場合、全額を同じ日に支払う必要があります
  • タイプ2の場合、同じ日以降の50%
  • 30日他の50%の金額を支払う必要があります
  • タイプ3の場合、同じ日以降の60%
  • 60日他の60%の金額を支払う必要があります

    transactionType | noDays | PercentSplit  |
    
                   1|      0 |            0  |
                   2|     30 |            50 |
                   3|     60 |            60 |
    

支払い期限のある注文を追跡しようとしています

現在、トランザクションタイプとステータス0の2つのテーブルを結合しています

$query = "select Order.PO_invoice, Order.Company, Order.Amt_Paid, Order.Balance,
          Order.dateCreated, Transaction.noDays,Transaction.PercentSplit 
          INNER JOIN Transaction
          ON Order.transactionType = Transaction.transactionType AND
           Order.status =0"

PHPでループし、

currentTime - Order.dateCreated  > = Transaction.noDays

その場合は行を表示し、そうでない場合は行をスキップします。

MYSQLでのみこれを行い、それらの行のみを返す方法があるかどうかを知りたいです。

4

1 に答える 1

1

やってみました -

WHERE DATEDIFF(NOW(),Order.dateCreated) >= Transaction.noDays
于 2012-07-03T05:37:27.323 に答える