2016-12-15 75 views
1

我正在學習基本的PHP和SQL(使用PHPmy管理員),並且無法理解如何處理前一行中的值以計算表中新行的數據。

我如何根據以前輸入的行計算一行中的值?例如,我希望每行都有:
1.自動創建行,直到列A的ID = 20
2.列B - 自動添加1個月到上一行日期
3.列D - 上一行減去付款(Col C)

我使用PHP或sql嗎?我如何設置它?請溫柔我對此仍然很陌生。使用SQL計算表中以前行的值

Table example

+0

爲什麼不使用AUTO_INCREMENT? http://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html或http://stackoverflow.com/questions/5665571/auto-increment-in-phpmyadmin – 2016-12-15 09:17:17

+0

指定您的示例數據並預期的結果也。 – Mansoor

+0

我正在使用ID的自動增量。它可以使用幾個月嗎? – melv

回答

0
CREATE TABLE #Details(ID INT IDENTITY(1,1),_Date DATE ,Payment  INT, 
LoanAmount INT) 

DECLARE @Date DATE,@Payment INT,@LoanAmount INT,@PreLoanAmount INT 

IF NOT EXISTS(SELECT 1 FROM #Details) 
BEGIN 
    INSERT INTO #Details(_Date ,Payment ,LoanAmount) 
    SELECT @Date,@Payment,@LoanAmount 
END 
ELSE 
BEGIN 
    SELECT TOP 1 @PreLoanAmount = LoanAmount FROM #Details ORDER BY ID DESC 

    INSERT INTO #Details(_Date ,Payment ,LoanAmount) 
    SELECT DATEADD(MONTH,1,@Date),@Payment,@PreLoanAmount - @Payment 

END 
+0

你可以添加一個解釋嗎?所以@OP可以學習一些東西,而不是重複使用你的代碼。他在編程方面表現出新穎。 – 2016-12-15 09:36:20