2017-06-13 66 views
0

我是SQL複雜查詢的新手。我主要了解基礎知識。我也是VB.net的新手。這裏是我的問題:sql查詢和求和項目

我有兩個表,即表1表2

表1

item_name   quantity   
1. ball-pen  10 pcs 
2. bond-paper  20 rms 

表2

​​

我想要一個輸出結果表1中的所有項目的所有項目總和表2,同時自動扣除表1中剩下的項目。這裏有一個例子:

統一表

item_name  itemsleft  items_requested office_name 
1. bond-paper  17     3    office1 
2. ball-pen   5     5    office2 

,或許有要求購買圓珠筆許多辦事處,像這樣:

3. ball-pen   0     10   office1/2/4/5 depending on how many offices requested the specific item.. 
+0

你應該花時間來閱讀[SQL連接基礎知識](https://www.w3schools.com/sql/sql_join.asp) – Mederic

+1

您還應該閱讀[問]並參加[遊覽]。這不是一個教程網站 - 你需要展示*一些*努力來解決你自己的問題 – Plutonix

+0

抱歉..我thougt你可以幫助我..如果你不知道請說不..如果你知道然後指導我 –

回答

0

這裏是一個小故障以幫助你開始,因爲你沒有提供任何細節,你已經嘗試過(我通常只爲新人做一次)。我宣佈了一些臨時表,以便我可以用數據填充它們。還有其他一些方法可以獲得你所需要的,但並不重要。你也沒有提到你使用的DBMS; sql,MySql等......在最後一個筆記中,我會考慮查看主鍵,外鍵,索引等,目前加入的唯一方法是item_name。這將是更好的加入對某種類型的id ...

DECLARE @table1 TABLE(item_name VARCHAR(25), quantity int) 
DECLARE @table2 TABLE(item_name VARCHAR(25), requested_item INT, office_name_requested VARCHAR(25)) 

INSERT INTO @table1(item_name,quantity) 
SELECT 
    'ballpen', 
    10 

UNION 
    SELECT 
     'bond paper', 
     20 

INSERT INTO @table2(item_name,requested_item,office_name_requested) 
SELECT 
    'ballpen', 
    5, 
    'office1' 

UNION 
    SELECT 
     'bond paper', 
     3, 
     'office1/office2/office3' 
SELECT 
    t1.item_name, 
    (t1.quantity - t2.requested_item) AS itemsleft, 
    t2.requested_item AS items_requested, 
    t2.office_name_requested AS office_name 
FROM @table1 t1 
INNER JOIN @table2 t2 
    ON t2.item_name = t1.item_name 

這裏是輸出此查詢的 ...

enter image description here

+1

謝謝你的努力和對創意的大力支持sir ..非常感謝你.. –