1

複数の同様のレコードが取得されたときに、1 つのフィールドを一緒に追加する必要がある場合に、検索しようとしていたるところを検索しました。以下の私のクエリと結果。

これは私のクエリです:

SELECT m.id as 'id', m.name as 'Merchant Name', c.numStamps as 'Num Stampts on Card', COUNT(c.numStamps) as '# Users with this # Stampts'
FROM Merchants m, Cards c, Stores s
WHERE c.store_id = s.id
AND s.merchant_id = m.id
and c.redeemed = 0
and c.Numstamps>8
and c.datelaststamp > '2011-07-16 07:00:00'
group by m.id, c.numStamps
order by m.name, c.numStamps

結果は次のとおりです。

id Merchant Name Stampts UserStampts

391 360 Gourmet Burritos 9 3
391 360 Gourmet Burritos 10 6

と を組み合わせる必要がidありMerchant Nameます。Stamptsあまり重要ではありませんが、合計する必要がありUserStamptsます。だから私はリターンが必要です:

391 360 Gourmet Burritos 10 9
4

3 に答える 3

1

クエリを変更する簡単な方法は、ネストされたクエリに変換することです。

SELECT id, Merchant, SUM(Stampts) AS Stampts, SUM(UserStampts) AS UserStampts
FROM ( ... your old query goes here ... ) AS oldquery
GROUP BY id, Merchant;

これにより、両方の列が (個別に) 合計されます。

于 2012-09-22T21:26:46.287 に答える
0

名前でグループ化する必要もあります。

group by m.id, m.name, c.numStamps
于 2012-09-23T03:00:17.070 に答える
0

これを試して

SELECT m.id as 'id', m.name as 'Merchant Name', c.numStamps as 'Num Stampts
on Card', COUNT(c.numStamps) as '# Users with this # Stampts'

FROM Merchants m, Cards c, Stores s

WHERE c.store_id = s.id

AND s.merchant_id = m.id

and c.redeemed = 0

and c.Numstamps>8

and c.datelaststamp > '2011-07-16 07:00:00'

group by m.id

order by m.name, c.numStamps
于 2012-09-22T21:02:00.667 に答える