2012-07-05 113 views
0

我有两个表如下。编写SQL查询所需的帮助

项目表

该项目表中包含项目Id和总量

ItemID TotalItems  

1  10 

2  10 

3  10 

4  10 

OrderHistory

表此订单历史记录表包含项目Id和的OrderId

orderId ItemID 

11   1 

12   1 

13   2 

14   2 

15   3 

我想得到结果,其中包含ItemID和总项目用于例如项目Id 1,有两个订单的顺序历史,所以我想要的结果如下

剩余项目(公式:TotalTable项目表 - 相同的计数项目Id从Orderhistory表)

最终输出:

项目Id其余项目

1 8 

2 8 

3 9 

4 10 

所以如何为此编写SQL查询。

+1

[你尝试过这么远吗?(http://whathaveyoutried.com) – 2012-07-05 17:59:06

回答

3

像这样的东西?

SELECT i.ItemID, i.TotalItems - COUNT(h.ItemID) AS RemainingItems 
FROM ItemTable i 
    LEFT JOIN OrderHistory h 
     ON i.ItemId = h.ItemId 
GROUP BY i.ItemId, i.TotalItems 
+0

谢谢回答,其作品 – Urja 2012-07-05 18:07:18

+2

当我在SQL摆弄摆弄你已经回答了这个问题:)所以对于为了不浪费我的时间,我将在这里添加sql小提琴链接http://sqlfiddle.com/#!3/22e95/1 – 2012-07-05 18:17:42

+0

谢谢@ x64igor也为您提供帮助。 – Urja 2012-07-05 18:19:28