2017-04-12 92 views
1

以下代码正常工作。我在执行代码时在调试日志中看到的Id变量是正确的18位数字ID。表达不能成为声明 - Salesforce

List<Opportunity> psgPrimaryProjectIDToDelete = [Select pse__Primary_Project__c from Opportunity]; 
    System.debug('***************PSG Primary Project Name is ' + psgPrimaryProjectIDToDelete[0]); 
    Id myId = psgPrimaryProjectIDToDelete[0].id; 
     System.debug('***********myId = ' + myId); 

当我尝试使用该Id变量在我的选择语句中返回结果时出现问题。我不断收到错误:表达式不能成为一个声明。

我得到这个错误,当我跟随我的工作代码与此:

[Select Id from PSG_Vendor_Order__c where PSG_Project__c = :myId]; 

或此:

Set<Id> s = new Set<Id>(); 
s.add(myId); 
[Select Id from PSG_Vendor_Order__c where PSG_Project__c in :s; 

错误显示了在SELECT语句,但我不知道为什么。 ...谁能帮忙吗?

回答

1

实际上你需要建立一个新的列表你不正确

List<PSG_Vendor_Order__c> psgVendorOrder = new List<PSG_Vendor_Order__c>([Select Id from PSG_Vendor_Order__c where PSG_Project__c = :myId]); 
+0

返回它谢谢@EricSSH!这是我的问题的简单答案。我无法相信我没有想过把结果分配给一个变量.....我想相信错误被解释的方式是为什么我忽略了这一点!感谢您的快速回复! –