Доступ к инвентаризации - PullRequest
2 голосов
/ 06 февраля 2012

Ну, после долгих раздумий, я наконец-то получил запрос, который дает итоги продаж всех продуктов, и еще один, который дает информацию о запасах, поглощенных для всех продуктов (изображения ниже).

Я смотрел наМатериал Аллена Брауна и я его получили, но мне было интересно, смогу ли я составить сводный отчет, охватывающий все доступные запасы для всех продуктов.Всего 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

Я могу загрузить свою базу данных, если это будетБыть проще.

пытался использовать следующий запрос для того, что я хочу, но он возвращает 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];

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Вы можете объединить две таблицы по id и просто вычесть.

SELECT Sales.ID, Stock.Level - Sales.Quantity 
FROM Sales 
INNER JOIN Stock
ON Sales.ID = Stock.ID

Обновление не так уж и отличается. Поиграйте с окном дизайна запросов. Вы можете прочитать:

Fundamental Microsoft Jet SQL for Access 2000
Intermediate Microsoft Jet SQL for Access 2000
Advanced Microsoft Jet SQL for Access 2000

1 голос
/ 06 февраля 2012

Вы включили этот запрос в обновление вашего вопроса:

SELECT
    QrySaleTot.Item,
    QrySaleTot.ProductID,
    [QryStockLevel].[Stock]-[QrySaleTot].[Quantity] AS StockOnHand
FROM QrySaleTot, QryStockLevel
GROUP BY
    QrySaleTot.Item,
    QrySaleTot.ProductID,
    [QryStockLevel].[Stock]-[QrySaleTot].[Quantity];

Первая проблема - у вас нет условия соединения ... поэтому каждая строка в QrySaleTot будет сопоставляться с каждой строкойот QryStockLevel.Это даст то, что называется декартовым произведением, или перекрестное соединение .Пересмотрите его, чтобы использовать объединение в поле, объединяющем 2 запроса.

GROUP BY здесь не кажется полезным, потому что вы не вычисляете какие-либо агрегированные значения.

Наконец, Item является зарезервированным словом.Если вам необходимо сохранить это имя поля, заключите его в скобки везде, куда вы ссылаетесь в своих запросах, например так: QrySaleTot.[Item]

...