我有一张桌子说Cases,它使用来自的参考Workers对于三列。还有一张桌子Company工人属于哪个。
下面是架构:
Cases [ CaseID, CaseNumber, Worker1, Worker2, Worker3 ]
Workers [ WorkerID, ComapnyID]
Company [CompanyID, CompanyName]
现在我需要每个公司的案例数。
那么是否有可能与工人进行一次连接并映射所有工人Worker1, Worker2 and Worker3列?有没有更好的选择和性能影响?
注:一个公司的两名工人可以处理一个案件,也可以所有工人都来自不同的公司。
尽管连接条件通常是相等性检查,但它们没有什么特别之处 - 任何有效的 SQL 条件都可以用于执行连接。在你的情况下,IN
条件似乎合适:
SELECT CompanyName, COUNT(DISTINCT CaseID)
FROM Company co
JOIN Workers w ON co.CompanyId = w.CompanyId
JOIN Cases ca ON w.WorkerId IN (ca.Worker1, ca.Worker2, ca.Worker3)
GROUP BY CompanyName
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)