我有3个表。首先是账户表,然后是联系表和电话表。Sql Server - 按订单发号
在这里试图写的查询的要求是,对于给定的帐户,显示顶部的主要联系人及其所有电话号码,然后显示按姓名排序的其余联系人。手机也必须以预先定义的顺序出现。家里的电话号码,然后再工作电话号码等等等等
这是我迄今为止
SELECT c.ContactID, c.FullName, p.PhoneCategory, p.Phone, a1.MainContactID
FROM Contact c
JOIN Phone p ON p.ContactID = c.ContactID
JOIN Account a1 ON a1.AccountID= c.AccountID
WHERE a1.AccountID= 1000
ORDER BY
c.FullName,
CASE PhoneCategory
WHEN 'Home Phone' THEN 1
WHEN 'Business Phone' THEN 2
WHEN 'Cell Phone' THEN 3
WHEN 'Fax' THEN 4
WHEN 'Other Phone' THEN 5
WHEN 'Email Address' THEN 6
WHEN 'E-Mail' THEN 6
END
通过运行此我得到的按名称排序列表,而且数量也出现在了正确的订购。唯一的问题是,我不能确定如何获得maincontact顶部
编辑露面:输入了替代A1
你说c1 maincontactid但c1没有在查询中定义。编辑了 – Hogan
。应该说a1.maincontactid – iDesi