2017-02-08 397 views
1

我在數據庫表中有一個列名'AmountLC'。另一列名稱'DebitCredit'確定'AmountLC'是正值還是負值。如果DebitCredit =「H」,則AmountLC中的值爲負值。如果DebitCredit =「S」,則AmountLC中的值爲正值。我需要查詢才能獲得AmountLC的總和。我試圖得到邏輯,但沒有得到任何。如果有人能幫助我,我將不勝感激。MYSQL SUM的正負值

我嘗試了下面的代碼,根據其他stackoverflow討論。

$F7 = mysql_query("SELECT 
       SUM(CASE WHEN DebitCredit='H' THEN DebitCredit ELSE 0 END) as NegativeTotal, 
       SUM(CASE WHEN DebitCredit='S' THEN DebitCredit ELSE 0 END) as PostiveTotal 
       FROM T1_CSV_Table 
       WHERE Month='$getMonth' AND TaxCode='A0'"); 

謝謝! 更新代碼的結果

$F7 = mysql_query("SELECT 
        SUM(CASE WHEN DebitCredit='H' THEN AmountLC*-1 ELSE AmountLC END) as Total 
        FROM T1_CSV_Table 
        WHERE Month='$getMonth' AND TaxCode='A0'"); 
    $rowf7 = mysql_fetch_array($F7); 
    echo "Total-".$rowf7['Total']; 

更新代碼: 選擇AmountLCDebitCredit FROM T1_CSV_Table WHERE TaxCode = 「A0」 和月= 「12」

enter image description here

+3

每次你使用【了'mysql_'(http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) dat在新代碼基礎上擴展 ** [小貓在世界的某個地方被勒死](http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**它是已棄用並已使用多年,並在PHP7中永遠消失。 如果您只是學習PHP,花費精力學習'PDO'或'mysqli'數據庫擴展和準備語句。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+1

不應該'那麼DebitCredit'是'THEN AmountLC'? – Barmar

+1

'SUM(CASE WHEN DebitCredit ='H'THEN AmountLC * -1 ELSE AmountLC END)as Total,' – RiggsFolly

回答

1

你能做到這一點的計算都在一個去,如果你想要的是一個總的借方和貸方

SELECT 
    SUM(CASE WHEN DebitCredit='H' THEN AmountLC*-1 ELSE AmountLC END) as Total 
FROM T1_CSV_Table 
WHERE Month='$getMonth' AND TaxCode='A0' 

注:您的腳本是在SQL Injection Attack 風險有一個看看發生了什麼事Little Bobby Tables即使 if you are escaping inputs, its not safe! 使用prepared parameterized statements

+0

我接受這個答案。我會試着弄清楚我的代碼有什麼問題。感謝您的邏輯:) – Zendie

-1

試試這個請:

SELECT 
    SUM(IF(DebitCredit='H', DebitCredit, 0) AS NegativeTotal, 
    SUM(IF(DebitCredit='S', DebitCredit, 0) AS PostiveTotal 
FROM T1_CSV_Table 
WHERE 
    MONTH='$getMonth' 
AND 
    TaxCode='A0'; 
+0

爲什麼你投下了這個? –

+0

我沒有。我正在嘗試這個。謝謝 – Zendie

+0

爲什麼要麻煩,它不容易添加和減少'H'和'S',並得到任何有用的答案 – RiggsFolly