値を指定せずに、FK の同じ値を持つテーブルからすべての行を選択する方法を知っている人はいますか? 倉庫のあるデータベースがあります。セクターと、各セクターに特定の値のアイテムがあります。単一のクエリでアイテムの合計値が特定の数よりも大きいセクターを選択したい。そして、クエリを普遍的なものにしたい - 倉庫のすべてのセクターのアイテムの全体的な値を合計する必要があります (セクターの数やセクターの数を指定せずに) 誰もそれを行う方法を知っていますか? 完全なクエリは必要ありません。特定のセクターのすべての値を合計することをデータベースに伝える方法です。SectorID は外部キーで、Item はテーブルです (ItemID を公開キーとして、Value を item の値として)
質問する
4323 次
2 に答える
0
group by
クエリが必要なようです。これはかなり基本的なものなので、SQL の初心者だと思います。
select SectorId, sum(itemValue) as TotalItemValue
from warehouse w
group by SectorId
having sum(itemValue) > YOURVALUEHERE;
セクター内のアイテムが必要な場合は、join
またはで取得できin
ます。
select *
from warehouse w
where SectorId in (select SectorId
from warehouse
group by SectorId
having sum(itemValue) > YOURVALUEHERE
)
于 2013-07-14T17:56:30.370 に答える
0
クエリを組み合わせて使用します。基本的に、この問題は次のように解決できます。
Item テーブルと Sector テーブルの両方に ID 列が存在すると仮定します。しきい値T (上記のように単一のクエリによって返される特定の数値)として機能する値を考えます。
- Item.SectorID = Sector.SectorID Where Item.value > Tで Sector テーブルと Item テーブルを結合することにより、内部クエリを使用して、sector.sectorid、Item.itemid、および Item.value を選択します。
- 上記の内部クエリと GROUP BY(SECTORID)、GROUPBY(ITEMID) から得られた結果の Sum(Item.value)。
于 2013-07-14T17:54:08.970 に答える