0

私はSQLの選択に必死です。id、country、address、priceの4つのパラメーターを持つ1つのテーブルがあります。そのテーブルは多くの行で同じIDを持っており、各IDの価格の合計を取得しようとしています。たとえば、次のデータがある場合:

ID  Country  Address  Price
1   France   Address1 1000
1   France   Address2 3332
1   France   Address1 1562
1   France   Address3 1123
1   France   Address2 1123
2   UK       Address8 1234
2   UK       Address7 1233

次の結果を取得したい:

ID  Country  Address  Price
1   France   Address1 SUM(1000, 3332, 1562, 1123, 1123)
2   UK       Address8 SUM(1234, 1233)

多くのクエリを試しましたが、その結果を取得できません。問題は、国と住所でグループ化されたデータを取得し、住所が異なるため、たとえばフランスの3つの住所で複数の行を取得することです。

前もって感謝します。

私の英語レベルでごめんなさい。

4

4 に答える 4

4

住所をどのように並べ替えるかを知らなければ、何が最初の住所行と見なされるかわかりません。昇順で並べ替えると、次のようになります。

SELECT   [ID], Country, MIN(Address), SUM(Price) As TotalPrice
FROM     tblYourTableName
GROUP BY [ID], Country
ORDER BY [ID]

そうでない場合は、サブクエリを実装して、住所を ID と国で並べ替える必要があります。もっと知る必要があります。

于 2013-02-23T11:06:07.567 に答える
0

動作するかどうかを確認する

SELECT country, SUM(price)
FROM table
GROUP BY country
于 2013-02-23T11:05:21.137 に答える
0

答えは、DBMS によって異なります。例えば:

SELECT   [ID], Country, Address, SUM(Price) As TotalPrice
FROM     tblYourTableName
GROUP BY Country
ORDER BY [ID]

このクエリは Sql Server や Oracle では機能しませんが、MySql では機能します。

于 2013-02-23T11:11:05.390 に答える
0

クエリへの最も簡単な方法はこれです

select a.ID, a.Country, a.Address, sum(a.Price) as TotalPrice
from address a
group by a.ID;

しかし、他の人が言ったように、適切な出力を得るには、国に関連して住所をどのように並べ替えるかを知る必要があります。

もう 1 つの重要な点は DBMS です。

ちなみに、すぐにテストしたい場合は、このSQLFiddleをチェックしてください http://www.sqlfiddle.com/#!2/61ba6/4

クエリが機能することを 100% 確信できるように、DBMS を変更することもできます。

于 2013-02-23T11:13:23.087 に答える