まず、私のテーブル:MySQLは請求書に基づいて毎日の流入/流出を取得しますか?
mysql> desc invoice;
+-------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| date | timestamp | YES | | NULL | |
| sent | timestamp | YES | | NULL | |
| due_date | timestamp | YES | | NULL | |
| amount | float | YES | | NULL | |
| amount_due | float | YES | | NULL | |
| status | enum('unpaid','paid') | YES | | NULL | |
| customer_id | int(11) | NO | MUL | NULL | |
+-------------+-----------------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)
誰も私が行ごとに、返されたクエリを考え出すのに役立ちます。
日(そのグループをDUE_DATEにより) 日の開始残高 流入(日について陽性トランザクションの合計) 流出(昼用負トランザクションの合計) 残高(後に終日の残高(これは、前日の終了バランスであろう)流入と流出の取引が適用されている)
基本的に私は撤回されたどのくらいのお金、堆積したどのくらいのお金を知りたい毎日、その日のバランスがで開始し、期末残高。
また、当日は「due_date」で行をグループ化し、amount_dueを無視してすべてのトランザクションの基礎として「金額」列を使用するように指定する必要があります。
アイデア?
私はこの情報を保持しているが、おそらく誰かが実際のデータオフこれを行うことができます気の利いたクエリを考え出すことができると思った別のテーブルを作る道を下る開始することができます。
遅く返事を申し訳ありません...休暇の休暇とすべて。 私はこのクエリが動作するようになった: は 'POSTDATEとして 日(todaydata.postdate)、流入AS、 SUM(CASE todaydata SUM(todaydata.amount> 0 THEN todaydata.amount ELSE 0 END CASE)を選択します。 (今日のデータ。金額ELSE 0終了)OUTLOW 今日のデータからの請求書 LEFT JOINの請求書は昨日のデータから今日の日付のデータ.postdate = DATE_ADD(昨日のデータ。ポスト日付、間隔-1日) GROUP BY日付(今日のデータポスト日付) ' 醜いの書式設定のstackoverflow!hah –
私はStartingBalanceとEndingBalanceを動作させるのに苦労しています。 EndingBalanceは次のものと同じです:startingbalance + inflow + outflow = endingbalanceそしてStartingBalanceはもちろん最初の行では0になります。それ以外の場合はStartingBalance = Yesterday's EndingBalance –