我为小型CRM系统进行了数据库设计。它由公司和会议(包括其他)组成。我的SQL加入/群组/光标问题时遇到问题
公司具有以下字段: ID(初级,auto_inc) 名称(文本)
会议有以下字段: ID(初级,auto_inc) CompanyId(链接到Companies.ID) WhenTime(日期时间,以便在会议时存储) 备注(有关会议的文本)
我想完成的是一个查询,该查询给出了所有公司(表中所有字段)的列表,以及WhenTime和Notes与该公司的最新会议(最新是最大(WhenTime),如果没有,则是a NULL会很好)。
我想我可以用光标解决这个问题,但是我害怕速度。
我已经尝试了几组按配方,但我担心我缺乏所需的技巧。
我的最后一次尝试是这样的:
select Companies.ID, Companies.name, mts.whentime, mts.notes
from Companies
left outer join (
select top(1) *
from Meetings
order by [whentime] desc
) mts
on Companies.ID = mts.companyID
order by Companies.name asc
但是这个代码只需从会议一个元组,在加入每家公司不是一个,所以一点也不好。
任何想法?
你需要列出所有的公司,或者只有那些有过至少一次会议? – 2010-01-21 15:29:14
所有公司,如果有最新的会议时间和东西 – Tominator 2010-03-25 16:06:26