编写SuperOffice SQL查询
我正在寻找帮助,在MSSQL上为SuperOffice 7 for Windows编写SQL查询。 DB模式图位于>Sales&Marketing数据库表 基本上,我想提取任何联系人的CATEGORY.name和CONTACT.name,这些联系人的PHONE.PHONE与输入参数匹配 这是我得到的最接近的结果,但它似乎只适用于DB中的一部分电话号码,我不明白为什么:编写SuperOffice SQL查询,sql,sql-server,Sql,Sql Server,我正在寻找帮助,在MSSQL上为SuperOffice 7 for Windows编写SQL查询。 DB模式图位于>Sales&Marketing数据库表 基本上,我想提取任何联系人的CATEGORY.name和CONTACT.name,这些联系人的PHONE.PHONE与输入参数匹配 这是我得到的最接近的结果,但它似乎只适用于DB中的一部分电话号码,我不明白为什么: SELECT CONTACT.name AS contactname , CATEGORY.name AS categoryna
SELECT CONTACT.name AS contactname
, CATEGORY.name AS categoryname
, PHONE.phone
FROM CONTACT
INNER JOIN CATEGORY ON CONTACT.category_idx=CATEGORY.Category_id
INNER JOIN PHONE ON CONTACT.contact_id=PHONE.phone_id
WHERE PHONE.phone=[inputparameter goes here];
我意识到这类东西有一个COM API,但是这个项目需要一个纯SQL查询。这应该可以
select
c.name as Contact,
cat.name as Category,
ph.phone
from crm7.contact c
left join crm7.category cat ON c.category_idx = cat.category_id
left join crm7.phone ph ON c.contact_id = ph.owner_id
where ph.ptype_idx < 1000
选择
c、 联系人姓名:,
类别名称,
博士电话
来自crm7.3,请联系c
左连接crm7.category cat ON c.category_idx=cat.category_id
左连接crm7.PHON c上的电话。联系人\u id=ph.owner\u id
其中ph.ptype_idx<1000
这将获得该公司的电话号码。请注意,您已将contact_id加入到phone_id,这是错误的。您必须将其连接到owner_id字段,并在ptype_idx上进行筛选。请从您的表(尤其是电话)中提供一个示例Inputparameter和示例数据集。如果它仅适用于电话号码的一个子集,请找出可用号码的共同点和不可用号码的不同点。您链接的ERD不提供数据类型,但电话号码可能是字符串(
varchar()
),因此您只匹配与所需格式相同的号码。谢谢。为了帮助其他人,解决方案是所需的联接表取决于PHONE.Ptype_idx字段的值。当此字段的值为1-2时,PHONE.owner_id是联系人的外键。当它是1385-16390时,PHONE.owner_id是个人的FK。