Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写SuperOffice SQL查询_Sql_Sql Server - Fatal编程技术网

编写SuperOffice SQL查询

编写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

我正在寻找帮助,在MSSQL上为SuperOffice 7 for Windows编写SQL查询。 DB模式图位于>Sales&Marketing数据库表

基本上,我想提取任何联系人的CATEGORY.name和CONTACT.name,这些联系人的PHONE.PHONE与输入参数匹配

这是我得到的最接近的结果,但它似乎只适用于DB中的一部分电话号码,我不明白为什么:

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。