Sql salesforce中的soql查询

Sql salesforce中的soql查询,sql,salesforce,soql,Sql,Salesforce,Soql,AggregateResult[]groupedResultCall=[选择帐户\u vod\u\c,计数(Id) 来自Call2\u vod\uu c 其中Call_Date_vod__c>=:quartStartDate 并调用\u Date\u vod\u c=:quartestartdate 和Call_Date_vod_c查询之间唯一的区别是嵌套和条件 AggregateResult[] groupedResultCall = [ SELECT Account_vod__c, coun

AggregateResult[]groupedResultCall=[选择帐户\u vod\u\c,计数(Id)
来自Call2\u vod\uu c
其中Call_Date_vod__c>=:quartStartDate
并调用\u Date\u vod\u c=:quartestartdate

和Call_Date_vod_c查询之间唯一的区别是嵌套和条件

AggregateResult[] groupedResultCall = [ SELECT Account_vod__c, count(Id) 
                                        FROM Call2_vod__c 
                                        WHERE Call_Date_vod__c >= :QuarterStartDate
                                          AND Call_Date_vod__c <= :QuarterEndDate 
                                          AND Account_Type__c =: accStaticRec.Account_Type__c 
                                          AND Territory_vod__c =: accStaticRec.Territory__c 
                                          AND Status_vod__c = 'Submitted_vod' 
                                          AND (Call_Type_vod__c != 'Call Only' 
                                            OR Call_Type_vod__c != 'Event Only' 
                                            OR Call_Type_vod__c != 'Event Detail')
                                          AND Account_vod__c IN :accIdSet                                                           
                                          AND Activity_Type__c <> 'Staff'
                                        GROUP BY Account_vod__c ];

 AggregateResult[] groupedResultCall = [SELECT Account_vod__c, count(Id) 
                                        FROM Call2_vod__c 
                                        WHERE Call_Date_vod__c >= :QuarterStartDate 
                                          AND Call_Date_vod__c <= :QuarterEndDate 
                                          AND Account_Type__c =:accStaticRec.Account_Type__c 
                                          AND Territory_vod__c = :accStaticRec.Territory__c 
                                          AND Status_vod__c = 'Submitted_vod' 
                                          AND (Call_Type_vod__c != 'Call Only' 
                                            AND Call_Type_vod__c != 'Event Only' 
                                            AND Call_Type_vod__c != 'Event Detail')
                                          AND Account_vod__c IN :accIdSet  
                                          AND Activity_Type__c <> 'Staff'
                                        GROUP BY Account_vod__c ];
VS

这完全取决于您的数据模型和您对查询结果的期望。

第二个是正确的

AND (Call_Type_vod__c != 'Call Only' 
  AND Call_Type_vod__c != 'Event Only' 
  AND Call_Type_vod__c != 'Event Detail')
我想您应该检索那些“Call\u Type\u vod\u c”值不是这些值的行(“Call Only”、“Event Only”、“Event Detail”)。 所以第二个会有用

第一个查询将返回所有行

AND (Call_Type_vod__c != 'Call Only' 
AND Call_Type_vod__c != 'Event Only' 
AND Call_Type_vod__c != 'Event Detail')
AND (Call_Type_vod__c != 'Call Only' 
AND Call_Type_vod__c != 'Event Only' 
AND Call_Type_vod__c != 'Event Detail')
AND (Call_Type_vod__c != 'Call Only' 
OR Call_Type_vod__c != 'Event Only' 
OR Call_Type_vod__c != 'Event Detail')