MS-Access:从3个表计算库存

如何解决MS-Access:从3个表计算库存

我正在从StackOverFlow中读取this post,以调整查询以从3个表中计算库存。我有3个表tblItemstblPurchasetblSalestblItems包含以下项目信息。

ItemCode    Description                 ItemClass   ItemCategory        ReorderLevel    Unit    Stop
IT000001    Tonner 226A                 Tonner      IT Accessories      10              Pc(s)   No
IT000002    Keyborad (A4Tech,Slim Key) Keyboard    IT Accessories      10              Pc(s)   No
IT000003    Mouse (Wireless)            Mouse       IT Accessories      10              Pc(s)   No
SI000001    A4 Size Paper               Paper       Office Stationary   10              Pc(s)   No
SI000002    Pen (Black)                 Pen         Office Stationary   10              Pc(s)   No
SI000003    Pen (Blue)                  Pen         Office Stationary   10              Pc(s)   No

我的桌子的屏幕截图

tblItems:

enter image description here

tbl购买:

enter image description here

tbl销售:

enter image description here

我的预期结果如下

enter image description here

在查询结果项中,详细信息将来自tblItems。每件商品的总购买数量和每件商品的总销售数量,然后从SalesQuantity减去PurchaseQuantity来查看库存。

这是我的查询,给我以下警告。

SELECT DISTINCTROW tblItems.ItemCode,TblItems.Description,TblItems.ItemClass,TblItems.ItemCategory,TblPurchaseAgg.[pQuantity],TblSalesAggs.[sQuantity]
FROM (TblItems 

LEFT JOIN (SELECT TblItems.ItemCode AS ItemCode,Sum(TblPurchase.Quantity) AS pQuantity FROM TblItems LEFT JOIN TblPurchase ON TblItems.ItemCode = TblPurchase.ItemCode GROUP BY TblItems.ItemCode)  
AS TblPurchaseAgg ON TblItems.ItemCode = TblPurchaseAgg.ItemCode) 

LEFT JOIN 

(SELECT TblItems.ItemCode AS ItemCode,Sum(tblSales.Quantity) AS sQuantity FROM TblItems LEFT JOIN tblSales ON TblItems.ItemCode = tblSales.ItemCode GROUP BY TblItems.ItemCode)  AS TblSalesAggs ON TblItems.ItemCode = TblSalesAggs.ItemCode

GROUP BY TblItems.ItemCode,TblItems.ItemCategory;

enter image description here

寻求帮助以解决警告并获得预期的输出。任何帮助是极大的赞赏。预先感谢。

解决方法

请使用这个-

SELECT 
tblItems.ItemCode,TblItems.Description,TblItems.ItemClass,TblItems.ItemCategory,TblPurchaseAgg.[pQuantity],TblSalesAggs.[sQuantity]
FROM TblItems 

LEFT JOIN (SELECT TblPurchase.ItemCode AS ItemCode,Sum(TblPurchase.Quantity) AS pQuantity FROM TblPurchase GROUP BY TblPurchase.ItemCode)  TblPurchaseAgg ON TblItems.ItemCode = TblPurchaseAgg.ItemCode
LEFT JOIN (SELECT tblSales.ItemCode AS ItemCode,Sum(tblSales.Quantity) AS sQuantity FROM tblSales GROUP BY tblSales.ItemCode) TblSalesAggs ON TblItems.ItemCode = TblSalesAggs.ItemCode

GROUP BY TblItems.ItemCode,TblItems.ItemCategory;

enter image description here

,

您不需要外部/第一组。由于您的项目表将[probably]永远不会有重复的项目,因此返回的记录将始终是唯一的。

您正在使用的两个左联接均按itemCode分组,因此它们每个项也将仅返回一条记录。因此不需要整体分组。

这可能对您有用:

    SELECT 
    tblItems.ItemCode,TblPurchaseAgg.pQuantity,TblSalesAggs.sQuantity,(TblPurchaseAgg.pQuantity - TblSalesAggs.sQuantity) as stock,TblItems.unit
FROM 
    (TblItems 
    LEFT JOIN 
        (
            SELECT 
                TblPurchase.ItemCode AS ItemCode,Sum(TblPurchase.Quantity) AS pQuantity 
            FROM
                TblPurchase
            GROUP BY TblPurchase.ItemCode
        )  AS TblPurchaseAgg
    ON TblItems.ItemCode = TblPurchaseAgg.ItemCode) 
    LEFT JOIN 
    (
        SELECT 
            tblSales.ItemCode AS ItemCode,Sum(tblSales.Quantity) AS sQuantity 
        FROM 
            tblSales
        GROUP BY tblSales.ItemCode
    )  AS TblSalesAggs 
    ON TblItems.ItemCode = TblSalesAggs.ItemCode

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-