sql - SQL Inner Join 组合结果中的行 - 结果太少
问题描述
我正在尝试从四个表中创建一个报告:Master、Details、Labor、Costs。目前,我有一份工作报告从 Jobs、Details 和 Costs 中提取列。所有表的共享键是 JobNumber。我希望获得每项工作的总成本和总小时数。这是我的代码,适用于三个表:
SELECT
JC_JobMaster.JobNumber,
JC_JobMaster.JobDescription1 AS Customer_Name,
JC_JobMaster.JobDescription2 AS Work,
JC_JobSortCategories.SortCategory2 AS Work_Type,
JC_JobMaster.CustomerCode,
JC_JobMaster.ContractValue,
SUM(JC_JobBalancesCostDollars.CurrentPeriodAmount*-1) AS Gross_profit,
JC_JobSortCategories.SortCategory1 AS City,
JC_JobSortCategories.SortCategory4 AS Salesman
FROM
JC_JobMaster INNER JOIN
JC_JobSortCategories ON JC_JobMaster.JobNumber = JC_JobSortCategories.JobNumber INNER JOIN
JC_JobBalancesCostDollars ON JC_JobMaster.JobNumber = JC_JobBalancesCostDollars.JobNumber
WHERE
JC_JobMaster.JobNumber between '11566' and '13441' and
JC_JobSortCategories.SortCategory5 = 'AWARDED' and
JC_JobSortCategories.SortCategory2 = 'FPR' and
JC_JobSortCategories.SortCategory1 in ('1')
Group By
JC_JobMaster.JobNumber,
JC_JobMaster.JobDescription1,
JC_JobMaster.JobDescription2,
JC_JobSortCategories.SortCategory2,
JC_JobMaster.CustomerCode,
JC_JobMaster.ContractValue,
JC_JobSortCategories.SortCategory1,
JC_JobSortCategories.SortCategory4
Order by
JC_JobMaster.JobNumber
一切正常 - 此查询返回 45 行,其中包含易于验证的数据。但是,使用内连接添加第四个表INNER JOIN JC_JobCostDetailLabourHours ON JC_JobMaster.JobNumber = JC_JobCostDetailLabourHours.JobNumber
只返回 7 行,并且总和列Gross_profit不正确。使用 LEFT JOIN 而不是 INNER JOIN 给了我正确的 45 行,但总和列仍然不正确。LabourHours 和 BalancesCostDollars 表对于我想要求和的每个工作编号都有多个条目。添加第四个表我做错了什么,或者我只是碰巧在第一个求和列中得到了正确的结果?
解决方案
推荐阅读
- javascript - 在javascript中计算多个项目的总价格和数量的最简单方法是什么?
- last.fm - 获取专辑的发布日期 last.fm api
- c# - Jquery Array 将其传递给后端 C# MVC
- firebase - 在 Flutter 应用中使用用户的谷歌账户头像
- javascript - 如何使用 Pusher 将用户的存款和取款详细信息从客户端发送到 Node.js (express) 服务器?
- mysql - 如何重置 `django_apscheduler_djangojobexecution` 表的 AUTO_INCREMENT 约束?
- android - ViewPager2中的不同大小列表,放入NestedScrollView
- excel - 如何在合并工作表时复制没有公式或任何格式的数据
- sql-server - SSIS Select * From (Variable Table) 执行 SQL 任务
- python - Python中的浮动RMS