情境:
我有2个表,Car Table和Employee Table。非常简单的表,但是两个表都包含位置代码:
╔════════════════╗ ╔═══════════╗
║ Employee Table ║ ║ Car Table ║
╠════════════════╣ ╠═══════════╣
║ empID ║ ║ CarID ║
║ empName ║ ║ CarName ║
║ LocID ║ ║ LocID ║
╚════════════════╝ ╚═══════════╝
这是为了代表在特定地点工作的员工,并且还显示哪些车辆位于相应的位置。
我尝试使用此查询显示的是每辆车的计数,以及员工GROUPED BY位置ID,例如:
每次尝试查询时,它总是在查询中添加多个位置ID,即使我想按它进行分组。这可以用一个查询吗?
答案 0 :(得分:3)
select e.LocId, EmpCount, CarCount
from
(select LocId, count(*) as EmpCount from Employee group by LocId) as e
inner join
(select LocId, count(*) as CarCount from Car group by LocId) as c
on c.LocId = e.LocId
这是一般性的想法,虽然我不认为这是Access的完美语法,因为我确信它必须在某处丢失一对括号。由于您有多对多关系,因此在加入之前您需要能够折叠成一行。
我还假设每个位置都由员工和汽车代表。如果这不是完全正确的话,也许你可以通过左外连接逃脱。由于我认为Access不允许完全外连接,如果你不能按照这些方式做出假设,你将需要另一种解决方法。
使用count(distinct)
也可能有用,但我认为如果表格很大,使用上述方法会更快。
select e.LocId, count(distinct e.EmpId) as EmpCount, count(distinct c.CarId) as CarCount
from Employee as e inner join Car as c on c.LocId = e.LocId
答案 1 :(得分:0)
试试这个:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h2>To Do</h2>
<form name="checkListForm">
<input type="text" name="checkListItem"/>
</form>
<div class="button">Add</div>
<br>
<div class="list"></div>