我有 3 张桌子。首先是 account 表,然后是 contact 表和 phone 表。
我试图在这里编写的查询的要求是,对于给定的帐户,在顶部显示主要联系人及其所有电话号码,然后显示按姓名排序的其余联系人。电话还必须以预定义的顺序出现。首先是家庭电话号码,然后是工作电话号码等。
这是我到目前为止所拥有的
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 出现在顶部
编辑:输入 c1.MainContactID 而不是 a1