2013-04-30 41 views
-1

我有一個包含餘額的accounts的列表。 我也有一個表items,每個項目都有一個由account_id標記的項目列表。 每個項目都有一個狀態,該項目標記爲0 - 未付和1 - 付款。循環記錄,根據餘額更新狀態

我需要查詢或存儲過程,而可以順利通過,並同時通過日期 - 時間

排序爲實例做標記:我有三個項目的價值每$ 50我支付$ 120插入一個帳戶。查詢/過程後,前兩項應標記爲1,最後一項爲0

注意:項目可以在標記爲已付款後被刪除,餘額可隨時更改,因此我不能將項目標記爲付款進來,我需要一種方法來做到這一點在批處理模式,只需運行該查詢/存儲過程的每一個變化是由

+3

你到目前爲止嘗試過什麼?你有你的標籤'mysql'和'sql-server'嗎? – praveen 2013-04-30 05:48:22

+0

我還沒有嘗試過任何東西。我從來沒有遇到過這樣的事情。我不確定如何解決這個特定的問題。到目前爲止,我已經設法計算出每個賬戶的總餘額以及有多少錢是關於物品價格的......我把sql-server,因爲我想也許我需要某種運行在服務器上的腳本 – davidelias16 2013-04-30 06:10:59

回答

0
CREATE TABLE my_table 
(item_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, amount INT NOT NULL); 

INSERT INTO my_table VALUES (NULL,50); 
INSERT INTO my_table VALUES (NULL,50); 
INSERT INTO my_table VALUES (NULL,50); 

SELECT * FROM my_table; 
+---------+--------+ 
| item_id | amount | 
+---------+--------+ 
|  1 |  50 | 
|  2 |  50 | 
|  3 |  50 | 
+---------+--------+ 

SELECT x.* 
     , SUM(y.amount) rt 
    FROM my_table x 
    JOIN my_table y 
    ON y.item_id <= x.item_id 
    GROUP 
    BY x.item_id; 
+---------+--------+------+ 
| item_id | amount | rt | 
+---------+--------+------+ 
|  1 |  50 | 50 | 
|  2 |  50 | 100 | 
|  3 |  50 | 150 | 
+---------+--------+------+ 

SELECT x.* 
     , CASE WHEN SUM(y.amount) < 120 THEN 1 ELSE 0 END paid 
    FROM my_table x 
    JOIN my_table y 
    ON y.item_id <= x.item_id 
    GROUP 
    BY x.item_id; 
+---------+--------+------+ 
| item_id | amount | paid | 
+---------+--------+------+ 
|  1 |  50 | 1 | 
|  2 |  50 | 1 | 
|  3 |  50 | 0 | 
+---------+--------+------+ 

注意,你的情況的時候,你可能會在評價的結果不太感興趣,定已經被「支付」了。

+0

否I我對已經支付的結果感興趣,但對於我們正在使用的數量感興趣,例如,在兩種情況下,我們是否可以從帳戶餘額中採用此帳戶號碼並通過account_id關聯,並且可以告訴我如何更新帳戶調用項目而不是查看它? – davidelias16 2013-04-30 07:53:29

+0

如果不瞭解更多關於您的餐桌結構的信息,我會將其留給其他人,更有見識和更傾向於接受挑戰。 – Strawberry 2013-04-30 08:08:09