我需要一些帮助思考。我有两个有效的查询。他们给我SET1和SET2。现在,对于SET1中的每一行,我需要从SET2应用不同的日期来获得最终结果SET3。
SET1 我们公司为经常错过约会的客户提供服务。我有一个复杂的查询导致一组客户在过去六个月内错过了约会('No_Show'),这个查询计算了集合中每个客户的No_Shows数。
SELECT client_id, COUNT(events.id) AS 'No_Show'
FROM events
WHERE client_id IN
(/*Complex SELECT statement here that works great*/)
GROUP BY client_id
SET2 现在,我需要提高赌注并显示自从上次与客户的主要临床医生约会以来发生了多少次No_Show事件。
SELECT MAX(e_date)
FROM events e INNER JOIN client c ON e_client_id = client_id
WHERE e.event_staff_id = c.id_of_primary_clinician
总而言之,我想为查询一中的每一行运行查询二。
SET3 最后,我需要显示自最大日期以来No_Shows的数量。因此,对于SET1中的每一行,我需要从SET2获取日期并计算No_Shows的数量以获得SET3。谢谢你的帮助!
答案 0 :(得分:0)
使用相关子查询,类似于:
SELECT OE.client_id, COUNT(OE.id) AS 'Recent_No_Show'
FROM events as OE
WHERE OE.client_id IN
(/*Complex SELECT statement here that works great*/) and OE.e_date >
( SELECT MAX(e_date)
FROM events e INNER JOIN client c ON e.client_id = c.client_id
WHERE e.event_staff_id = c.id_of_primary_clinician and e.client_id = oe.client_id )
GROUP BY OE.client_id
我认为你有e_client_id
的小错字。