0

私はしばらくSQLを学んでいますが、この問題に悩まされています。

ストレージ会社用に 2 つのテーブルがあります。予約番号、日付、製品番号、数量、および保管室からなる会社全体の予約を 1 つのテーブルで。

そして、1つのテーブルには、保管施設名と保管室があり、部屋がどの施設に属しているかを定義します

1 つの特定の保管施設にある 1 つの特定の製品の数量の合計を取得したい

SELECT sum(Quantity) from Bookings where ProductNo=8888 and Storage.StorageFacility="Central"

ソリューションには、より複雑なクエリを使用する必要がありますか?

4

2 に答える 2

3

あなたの貯蔵施設はテーブルとは別のテーブルにありBOOKINGSます(そしてそれらは を介し​​て関連付けられていますSTORAGE_ROOM)。したがって、これらのテーブルを結合する必要があります。

select sum(Quantity)
  from bookings b 
  join storage_facility_details sfd 
    on b.storage_room = sfd.storage_room
 where sfd.storage_facility = 'x'
   and bookings.productno='8888'
于 2013-01-10T20:15:41.060 に答える
1

SQL の構文は、データベース システムによって若干異なる場合があります。通常、引用符 ( ") は、テーブルや同様のオブジェクトを参照するために使用されます。値を指定するには、一重引用符 ( ') を使用します。また、列を参照するすべてのテーブルは、 の後に表示する必要がありますFROM。列quantityと列storagefacilityが両方のテーブルに表示される場合は、名前を完全に修飾する必要があります。

また、列の 2 つのテーブルを結合する必要があるため、テーブルにproductnoも存在する必要がありstorageます。

SELECT sum(quantity) FROM bookings, storage
   WHERE (bookings.productno = storage.productno)
         AND
         (bookings.productno='8888' AND storage.storagefacility='Central');
于 2013-01-10T20:18:59.747 に答える