我正在尝试获取的问题是 -
“我想知道受营销广告系列影响的商机何时与帐户相关联。账户中可能有多个联系人 因此,如果任何联系人与广告系列(广告系列的成员)相关联 - 请告诉我(或那些)联系人所连接的帐户, 如果有与该帐户关联的商机, 如果有与该帐户关联的商机,则在联系人与广告系列“
相关联后创建商机我无法弄清楚逻辑。我是SQL的新手。任何帮助将不胜感激。
我正在使用SQL Server 2012
我有来自SalesForce数据库的5个相关表 -
帐户表(PK ID,OpportunityID),商机表(PK ID,AccountID),联系表(PK ID,AccountID),广告系列表(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;
谢谢。
答案 0 :(得分:1)
你在LEFT JOIN上运行INNER JOIN,这是不明确的。
机会< - >账户
帐户 - >联系
广告系列成员< - >联系(由于上面一行,这应该是左连接)
广告系列成员< - >广告系列(由于上面的第二行,这应该是左连接)
广告系列 - >运动
此处的视觉效果在此处(您无法将新表格内连接到左连接表格):
GOOD:
INNER JOIN< - > INNER JOIN - > LEFT JOIN - > LEFT JOIN
BAD:
INNER JOIN< - > INNER JOIN - > LEFT JOIN - > INNER JOIN