2012-12-23 19 views
-2

我有兩個表指定錢(價格)SUM的問題。帶有錯誤SUM結果的結果問題。
我的查詢:MySQL SUM從兩個表錯誤的結果

SELECT SUM(up2.price + uf1.price) AS TotalCredit 
FROM user_faktorha AS uf1, u_payment AS up2 
WHERE uf1.`acc_id` = '11784' && up2.`Account`='11784' && up2.`Active`='1' 

user_faktorhaPrice有正數和負數。
u_paymentPrice只有正數。

有什麼問題或問題?

+0

*您可能*不需要'SUM( )'函數(這是一個用於分組查詢的聚合函數)。但是,如果沒有看到您的基礎數據以及您想要實現的目標,很難說清楚。 – eggyal

回答

0

我可能會建議你的語法上的些許變化。這裏有兩個備選方案:

SELECT up2.price + uf1.price AS TotalCredit 
FROM user_faktorha AS uf1 
INNER JOIN u_payment AS up2 
    on uf1.acc_id = up2. Account 
WHERE uf1.`acc_id` = '11784' && up2.`Active`='1'; 

或者

SELECT sum(up2.price + uf1.price) AS TotalCredit 
FROM user_faktorha AS uf1 
INNER JOIN u_payment AS up2 
    on uf1.acc_id = up2. Account 
WHERE uf1.`acc_id` = '11784' && up2.`Active`='1' 
GROUP BY uf1.acc_id 

通知的INNER JOIN語法兩個表,他們正在申請的acc_id之間。此外,在第一個版本,我沒有使用聚合函數,我只是將兩個表中的price,而第二個版本使用sum()聚集,並增加了group by

0

試試這個

 SELECT (up2.price + uf1.price) AS TotalCredit 
     FROM user_faktorha AS uf1, u_payment AS up2 
     WHERE uf1.`acc_id` = '11784' && up2.`Account`='11784' && up2.`Active`='1' 

因爲U將它們添加ü不需要SUM

+2

SUM()只有一個參數。 – eggyal

+0

編輯我的答案 –