2013-01-10 92 views
0

我正在學習SQL一段時間,而且我一直在解決這個問題。SQL使用兩個表進行查詢

我有兩個存儲公司的表。 在整個公司的預定表中,包括預訂號,日期,產品編號,數量和儲藏室。

而且在一個表中我有儲存設施的名稱和儲藏室來定義房間屬於我希望有一個特定產品的數量在一個特定的存儲設備的總和,其設施

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

我是否必須對解決方案使用更復雜的查詢?

回答

3

您的存儲設施位於與BOOKINGS表不同的表中(並且它們通過STORAGE_ROOM關聯)。所以你需要join這些表:

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' 
+0

你缺少ProductNo,只是把另一個「和」結尾:和b.ProductNo = 8888 – DRAX

+0

@DRAX是的,我已經錯過了。但你明白了。 – Nivas

+0

非常感謝您的快速和有益的答案。 – lpause

1

SQL的語法在不同的數據庫系統上可能會略有不同。通常使用引號(")來表示表格和類似的對象。使用單引號(')給出值。此外,所有引用列的表格都需要在FROM之後出現。如果列表quantitystoragefacility出現在兩個表格中,則需要完整確定名稱的質量。

此外,您需要將兩個表連接在一列上,因此也必須出現在您的storage表中。

SELECT sum(quantity) FROM bookings, storage 
    WHERE (bookings.productno = storage.productno) 
     AND 
     (bookings.productno='8888' AND storage.storagefacility='Central'); 
+0

謝謝! – lpause