【发布时间】:2012-02-06 10:23:51
【问题描述】:
经过一番折腾,我终于得到了一个查询,该查询提供了所有产品的销售总额,另一个查询提供了所有产品的库存(下图)。
我在看 Allen Brown 的东西,我明白了,但我想知道我是否可以制作一份涵盖所有产品的所有可用库存的总结报告。共有 31 种产品,它们都出现在库存查询和销售查询中。
http://imageshack.us/photo/my-images/810/87887.jpg
http://imageshack.us/photo/my-images/827/8787j.jpg
关于要使用的编码的任何想法...
我想这是可能的,但我真的不知道从哪里开始
我真的很想制作一份报告,总结查询中每种产品的库存。
不是有一个按钮来处理一个特定产品的库存,而是有一个按钮可以同时处理查询中每个产品的库存。
这有意义吗?
谢谢
山姆 更新
这是查找股票的查询
SELECT TblStock.ProductID, Sum(TblStock.StockLevel) AS Stock, TblProduct.Item
FROM TblStock INNER JOIN TblProduct ON TblStock.ProductID = TblProduct.ProductID
GROUP BY TblStock.ProductID, TblProduct.Item;
这是查询销售数量的查询
SELECT TblProduct.Item, Sum(TblTotalSale.Size) AS Quantity, TblProduct.ProductID
FROM TblProduct INNER JOIN TblTotalSale ON TblProduct.[ProductID] = TblTotalSale.[ProductID]
GROUP BY TblProduct.Item, TblProduct.ProductID;
TblStock 看起来像
StockID ProductID StockLevel
89 32 200
90 33 72
91 34 72
92 1 528
93 3 528
94 5 528
95 9 528
96 7 528
97 18 80
98 30 72
99 31 204
产品表看起来像
ProductID Item Price StockDelivery PriceSmall Large Small
1 Carling £2.50 528 £1.40 2 1
3 Carlsburg £2.70 528 £1.60 2 1
5 IPA £2.30 528 £1.20 2 1
7 StrongBow £2.80 528 £1.65 2 1
9 RevJames £2.45 528 £1.30 2 1
11 Becks £2.90 72 1
12 WKDBlue £2.80 72 1
13 WKDRed £2.80 72 1
14 SmirnoffIce £2.80 72 1
15 KoppaburgPear £3.10 72 1
16 KoppaburgSum £3.10 72 1
17 Bulmers £2.90 72 1
18 Vodka £1.60 80 1
19 Gin £1.40 80 1
20 Sherry £1.40 80 1
21 Sambuca £1.70 80 1
22 Rum £1.60 80 1
23 Port £1.60 80 1
24 Whiskey £1.60 80 1
25 Baileys £1.60 80 1
26 Jagermeister £1.50 80 1
27 Martini £1.60 80 1
28 CokeCan £0.85 72 1
29 Coke £1.30 204 £0.30 2 1
30 LemonadeCan £0.85 72 1
31 Lemonade £1.30 204 £0.30 2 1
32 Squash £0.25 200 1
33 Tonic £0.85 72 1
34 RedBull £1.90 72 1
35 Nuts £0.60 70 1
36 Crisps £0.60 70 1
tbltotalSale 看起来像
TotalSalesID ProductID SalePrice Day Time Size
370 1 £2.50 05/02/2012 19:53:14 2
371 1 £1.40 05/02/2012 19:53:14 1
372 1 £2.50 05/02/2012 19:53:14 2
373 1 £1.40 05/02/2012 19:53:14 1
374 1 £2.50 05/02/2012 20:25:12 2
375 1 £1.40 05/02/2012 20:25:12 1
376 1 £2.50 05/02/2012 20:25:12 2
377 1 £1.40 05/02/2012 20:25:12 1
378 1 £2.50 05/02/2012 20:25:12 2
379 1 £2.50 05/02/2012 20:25:12 2
380 1 £1.40 05/02/2012 20:25:12 1
381 5 £2.30 05/02/2012 20:25:12 2
382 5 £2.30 05/02/2012 20:25:12 2
383 5 £1.20 05/02/2012 20:25:12 1
384 7 £2.80 05/02/2012 20:25:12 2
385 7 £1.65 05/02/2012 20:25:12 1
386 7 £1.65 05/02/2012 20:25:12 1
387 9 £1.30 05/02/2012 20:25:12 1
435 11 £2.90 05/02/2012 20:25:12 1
436 11 £2.90 05/02/2012 20:42:49 1
437 11 £2.90 05/02/2012 20:42:49 1
如果这样更容易,我可以上传我的数据库。
已尝试使用以下查询来满足我的需求,但它为每个产品 ID 返回 11 个结果,没有一个是正确的......
SELECT QrySaleTot.Item, QrySaleTot.ProductID, [QryStockLevel].[Stock]-[QrySaleTot].[Quantity] AS StockOnHand
FROM QrySaleTot, QryStockLevel
GROUP BY QrySaleTot.Item, QrySaleTot.ProductID, [QryStockLevel].[Stock]-[QrySaleTot].[Quantity];
谢谢
【问题讨论】:
-
你的问题我不清楚。您希望同时显示库存查询和销售查询吗?如果是这样,为什么不将这两个查询添加到查询设计窗口并与相关字段建立关系?
-
我想创建一个查询,它将添加两个表中的记录,或者更确切地说,从 ID 相同的 stock 表中的值中减去 sales 表中的值,例如,我希望 id 1 的 sale 值取自 ID 1 的 Stock 值,但我希望查询对所有 ID 执行此操作,因此查询结果将包含 29 个值
-
您的最后一个示例缺少 JOIN。您可以通过将产品 ID 从一个拖到另一个来创建连接。最终结果没有 29 件商品 - 您是否打算让所有产品(无论销售额和库存水平如何)都出现在您的结果中?你在阅读中看过 LEFT JOIN 了吗?
-
谢谢。内部连接修复了它:) 是的,这是一个为经理创建摘要报告以向他显示当前库存的查询。所有的产品都应该在里面。他们都将在 tbl 库存中有库存,因此即使没有销售也不会发生错误。