2016-08-19 17 views
-1

おはよう。私は本当に大きな問題を抱えています。私の声明が間違っていると分かりません。以下のようになります:WHEREとGROUP BY LOAUSEとの和

$sumitem = mysqli_query($conn,"SELECT SUM(AMOUNT) AS TOTAL FROM sum_query WHERE MAIN_ID = 1 GROUP BY ITEM_ID"); 
$sum = mysqli_fetch_assoc($sumitem); 

私は$合計[「TOTAL」]が、何それが唯一の最初の列を表示を印刷しようとしています。以下は私のサンプルテーブルです:

MAIN_ID | ITEM_ID | AMOUNT | DESC | OTHER_DETAILS 
    1 |  1 | 500 | Item 1 | a 
    1 |  2 | 5000 | Item 2 | a 
    1 |  2 | 5000 | Item 2 | b 

私の望ましい結果は5500でなければなりませんが、それは唯一の500 はどうもありがとうございまし返します。

+0

を使用し、私はこの発見を複製することはできません

明確ではありません。私は500と6000を得ます – Strawberry

+0

'item'idを' select'節に含める必要はありませんか? –

+0

sum_query MAIN_ID = 1 – sunilwananje

答えて

0
SELECT SUM(g.AMOUNT) AS TOTAL 
    FROM sum_query g 
    WHERE g.MAIN_ID = 1 
GROUP BY g.ITEM_ID 

このクエリは、plaseこの

+0

私は私の質問の最後の部分で間違いを犯しました。チェックアウトしてください。私は数分前にそれを編集しました。 –

+0

var_dump($ sum)の結果は何ですか? plzはあなたの結果をコメントします –

+0

array(1){["TOTAL"] => string(4) "500"} –

1

を試して取り組んでいるあなたは6500としてANSをしたい場合は、アイテム2の2つのレコードを持っていると私にはないgroup by

SELECT SUM(AMOUNT) AS TOTAL FROM sum_query WHERE MAIN_ID = 1 
0

を削除OTHER_DETAILSに「aとb」を入れている理由をご存じですか?

あなたの要件は、あなたがOTHER_DETAILS「A」と一致するレコードだけを取りたい場合は、次のクエリ

SELECT SUM(AMOUNT) AS TOTAL FROM sum_query WHERE MAIN_ID = 1 and OTHER_DETAILS = 'a'