1

我试图获取数据的问题是 -

“我想知道受营销活动影响的商机何时与客户相关联。帐户可能有多个联系人
因此,如果任何联系人与活动(活动成员)相关联 - 请告诉我该(或那些)联系人连接到的帐户,以及是否有与该活动相关联的机会帐户,如果有与该帐户相关联的机会,则该机会是在联系人与活动相关联之后创建的”</p>

我想不通其中的逻辑。我是 SQL 新手。任何帮助将不胜感激。

我正在使用 SQL Server 2012

我有 5 个来自 SalesForce 数据库的相关表 –</p>

Account 表(PK ID、OpportunityID)、Opportunity 表(PK ID、AccountID)、Contact 表(PK ID、AccountID)、Campaign 表(PK ID、ContactID、ParentID)、CampaignMember 表(PK ID、ContactID、CampaignID)

此链接提供了 SalesForce 数据模型 http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_erd_majors.htm

这是我想出的,但它不返回任何行。

SELECT O.CreatedDate OppCreatedDate
,o.Name as OpportunityName
,a.Name AccountName
,c.Name as ContactName
,ca.Name as CampaignName
,o.Amount_Software
,o.CreatedDate
FROM Opportunity o
INNER JOIN Account a on a.Id = o.AccountID 
LEFT JOIN  Contact c ON c.AccountId = a.Id
INNER JOIN CampaignMember cm ON cm.CampaignID  = c.ID
INNER JOIN Campaign ca ON ca.ID = cm.CampaignID
LEFT JOIN Campaign ca2 ON ca2.ID = ca.ParentID
WHERE o.CreatedDate > cm.CreatedDate
ORDER BY AccountName DESC;

谢谢你。

4

1 回答 1

1

您正在对 LEFT JOIN 运行 INNER JOIN,这是不明确的。

Opportunity <--> Account
Account --> Contact
Campaign Member <--> Contact(这应该是左连接,因为上面的行)
Campaign Member <--> Campaign(这应该是左连接,因为行上二)
活动 --> 活动

视觉效果在这里(您不能将新表内连接到左连接表):

好:
内连接 <--> 内连接--> 左连接--> 左连接

错误:
内连接 <--> 内连接--> 左连接--> 内连接

于 2013-02-19T22:03:31.593 回答