我需要编写一个SQL查询,该查询来自一个存储记录的表,每次我们的销售人员与客户说话时。相关列包括:(1)销售人员的员工ID,(2)客户的帐号,以及(2)会话日期。
通常情况下,销售人员在报告期(一个日历月)内多次与客户交谈,因此除日期外,将有几个几乎相同的条目。
我被绊倒的地方是,为了这个查询的目的,我需要每个销售人员/客户端组合只返回一条记录,但我不能使用DISTINCT,因为我需要包含最多的日期最近在报告期内的谈话。
因此,如果销售人员约翰在10月10日,10月18日和10月25日与客户ABC谈话,我需要提取10/25记录而不是其他记录。
这是一个Sybase数据库。
我觉得我可能会遗漏一些简单的东西,但我已经尝试过搜索并保持难以理解。非常感谢任何帮助。
感谢您的时间,
约翰
答案 0 :(得分:1)
猜测列名...
SELECT employee_id, client_acct_no,
MAX(conversation_date) AS MOST_RECENT_CONV_DATE
FROM mytable
WHERE conversation_date BETWEEN DATE '2010-10-01' AND DATE '2010-10-31'
GROUP BY employee_id, client_acct_no
Documentation GROUP BY
子句。