0

我正在学习 SQL 一段时间,但我遇到了这个问题。

我为一家存储公司准备了两张桌子。在一张表中,用于整个公司的预订,包括预订编号、日期、产品编号、数量和储藏室。

在一张表中,我有存储设施名称和存储房间来定义房间属于哪个设施

我想在一个特定的存储设施中获得一种特定产品的数量总和

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. 如果列quantitystoragefacility出现在两个表中,则需要完全质量名称。

此外,您需要在列上连接两个表,因此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 回答