2013-12-12 177 views
2

我需要一些幫助,我有3個表從2個選擇選擇

http://i.stack.imgur.com/TB3MX.jpg

我的代碼:

select nazev_produkt, 
SUM(mnozstvi_objednavka_dod)'bylo na sklade' 
from Produkty p join Objednavky_dodavatele od on 
p.id_produkt=od.id_produkt 
where stavzbozi_objednavka_dod=('na skladě') 
group by nazev_produkt 



select nazev_produkt,SUM(mnozstvi_objednavka_zak)koupili 
from Objednavky_zakaznici oz join Produkty p 
on oz.id_produkt=p.id_produkt 
where stav_objednavka_zak=('dodané') 
group by nazev_produkt 

我想從兩個這個選擇,它將由nazev_produkt的創建選擇代碼,'bylo na sklade-koupili'and by nazev_produkt

基本上 bylo na sklade =有庫存

koupili =購買。

我需要扣除購買 - 在股票和展示nazev_produkt(產品名稱),NA sklade(庫存)

幫助深表感謝!

+0

以下是一個提示:使用英文編碼可以更輕鬆地獲得幫助,查找網絡資源並且也是一項重要的專業技能。我是德國人,我用英文編碼。 – usr

回答

0

我看不懂你的語言,所以在這裏做一些猜測... :-)表的加盟,我想,回答你的問題在任何情況下。

select 
    p.product_name, 
    --isnull(i.quantity,0) as was_in_stock, 
    --isnull(s.quantity,0) as sold, 
    isnull(i.quantity,0) - isnull(s.quantity,0) as [currently_in_stock] 
from 
    products p 

    LEFT JOIN (select product_id, sum(quantity) as quantity from inventory group by product_id) i 
    ON p.product_id = i.product_id 

    LEFT JOIN (select product_id, sum(quantity) as quantity from sales group by product_id) s 
    ON p.product_id = s.product_id 
group by 
    product_name 
+0

我編輯了一段代碼,但它不起作用http://pastebin.com/YyVVaPLf我收到以下錯誤:'消息8120,16級,狀態1,行9 列'Objednavky_dodavatele.id_produkt'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。' – Timy

+0

@ user2778760 - 對不起。我在上面修正了它(將'group by'子句添加到庫存和銷售查詢中) – Chains

0

添加第三列,其中包含源代碼的類型。

試試這個:

select nazev_produkt, 
isnull(
    (select SUM(mnozstvi_objednavka_dod) 
    from Objednavky_dodavatele od 
    where p.id_produkt=od.id_produkt), 
0) - 
isnull(
    (select SUM(mnozstvi_objednavka_zak) 
    from Objednavky_zakaznici oz 
    where oz.id_produkt=p.id_produkt), 
0) 
from Produkty p 
where stavzbozi_objednavka_dod=('na sklade') 
or stav_objednavka_zak=('dodané') 
+0

您好,感謝您試圖幫助我,我只需要2列1是'nazev_produkt'和第二列讓我們稱之爲'股票'等於'bylo na sklade'金額減去( - )'koupili'金額=股票金額 – Timy

+0

@ user2778760:我改變了我的查詢。我不確定這些過濾器在哪裏stavzbozi_objednavka_dod =('na sklade') 或stav_objednavka_zak =('dodané')。 Peraphs可以被刪除,但我有翻譯:) –