2014-05-08 34 views
-1
SELECT account_name ,SUM(debit)+SUM(credit) AS 'total_balance' 
AND SUM(total_balance) AS 'net_revenue' 
FROM transaction 

我想找到總餘額和總餘額爲淨營收的sum及其給我下面的SQL錯誤是給定的查詢在sql中是否有效?

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and sum(total_balance) as 'net_revenue' from transaction' at line 2 
+2

在你的情況'net_revenue'和'total_balance'因爲你不使用GROUP BY將是相等的,所以整個表將被視爲一個組也你的查詢你有一個錯字使用,而不是逗號 –

回答

0

只需刪除AND即可。

SELECT 
    account_name, 
    SUM(debit)+SUM(credit) AS 'total_balance', 
    SUM(total_balance) AS 'net_revenue' 
FROM transaction 

注:雖然上面的查詢語法有效,SUM是一組功能,你可能會需要一些GROUP BY子句來正確選擇account_name。事情是這樣的:

SELECT 
    account_name, 
    SUM(debit)+SUM(credit) AS 'total_balance', 
    SUM(total_balance) AS 'net_revenue' 
FROM transaction 
GROUP BY account_name 
0

不,這不是有效的SQL。使用逗號分隔選擇列表中的列。

SELECT account_name ,SUM(debit)+SUM(credit) AS 'total_balance', 
    SUM(total_balance) AS 'net_revenue' 
FROM transaction 

列表像apples, bananas and plums形成是自然英語常見,但不是在代碼。

0

兩件事錯在這裏:

  1. AND是一個布爾運算符。您需要使用逗號分隔多個列
  2. 您需要按帳戶名稱進行分組,以按帳戶名稱獲取計算值。

因此改變你的查詢:

SELECT account_name, SUM(debit)+SUM(credit) AS 'total_balance', SUM(total_balance) AS 'net_revenue' 
FROM transaction 
GROUP BY account_name 
+0

#1054 - '字段列表'中的未知列'total_balance' – user27852

+0

我有一個新的列total_balance我認爲這樣 – user27852

+0

這個列已經在你的表中,或者是第二個從你的查詢?如果你想獲得一筆款項,那麼這不是做到這一點的方法。 –

相關問題