首页 > 解决方案 > 如何进行查询以根据两个条件对数据进行排序,然后从初始表/查询中添加与该条件相对应的所有值?

问题描述

我有一个带有查询的 Access 数据库,称为计费时间,其中包含以下字段:项目名称、客户、员工、工作日期、工作描述、计费时间和不可计费时间。

此查询的作用是在每一行显示员工的工作日期、他为哪个客户工作、什么项目、他做了什么、有多少小时是可计费的,有多少是不可计费的。

我想在此基础上进行一个新查询,该查询将总结每个员工在每个项目名称上花费的总计费小时数和非计费小时数,但我似乎找不到这样做的方法。

我设法进行查询,将提取每个项目的总小时数和每个员工的总小时数,但作为一个整体,不是每个项目和每个员工。

我试过使用 DISTINCT、UNION、排序、加入、加入左、右和中心,似乎没有任何效果。

此外,真正没有帮助的是,自从我上次使用 SQL 工作以来可能已经 18 年了,而且我第一次处理 Access,这是我试图帮助某人解决的问题,这令人沮丧。

结果看起来像


Employee_Name_1 Project_Name_1 Number_of_BH1 Number_of_NBH1

Employee_Name_1 Project_Name_2 Number_of_BH2 Number_of_NBH2

Employee_Name_2 Project_Name_1 Number_of_BH3 Number_of_NBH3

等等


如果有人能指出我正确的方向,那将有很大帮助。我猜这甚至没有那么难。如果我可以提供任何进一步的信息,请告诉我。

干杯!

标签: sqlms-access

解决方案


尝试使用 sum 和 group by

select  Project_Name, Employee, sum( Billable_Hours), sum( Npn_Billable_Hours)
from my_table  
group by  Project_Name, Employee

对于您需要的日期范围

从 my_table 中选择 Project_Name, Employee, sum(Billable_Hours), sum(Npn_Billable_Hours)
WHERE Date_Worked Between my_start_date And my_end_date group by Project_Name, Employee


推荐阅读