2016-03-29 14 views
2

過去に同様の質問があったことがわかりましたが、私はそれらを参照しましたが、答えのどれもが私の特定の問題で動作していないようです。ここに私のコードです:1つのクエリでグループを結合して結合するSQL

SELECT 
    a.productid, 
    a.SUM(amount), 
    b.name 
FROM 
    sales a 
JOIN 
    products b ON b.Id = a.productid 
GROUP BY 
    a.productid 

2テーブル:販売、製品。 Salesには、Id、金額、価格、製品IDの列が含まれています。製品に含まれるもの:ID、名前。

何らかの理由で私のクエリが機能しません。誰もがこれで私を助けることができますか?

+1

集約関数にないすべての属性は、 'group by'になければなりません。だから 'b.name'を' group by'に追加する必要があります。 – HoneyBadger

答えて

2

これを試してください。集約関数ではない

SELECT 
a.productid, 
SUM(amount), 
b.name 
FROM 
sales a 
JOIN products b ON b.Id = a.productid 
GROUP BY a.productid, b.name 

カラム(a.productidb.name)はGROUP BY句に追加する必要があります。

+1

私は前に気づいていなかったが、 'a.SUM(amount)'もエラーを投げるだろうと思う。これは普通の 'SUM(a.amount)' – HoneyBadger

+0

@HoneyBadger: - 正しいです。私の答えを更新しました。いいチョイスだ! –

関連する問題