2017-08-24 3 views
1
SELECT 
    (select Email from Contact where AccountId = Account.Id), 
    Id, 
    BillingCity, 
    BillingCountry, 
    BillingPostalCode, 
    BillingState, 
    BillingStreet, 
    Name, 
    Phone 
FROM Account 
where 
LastModifiedDate < #[flowVars['timestamp']] 

problème ici est que je ne suis pas en mesure d'obtenir l'e-mail qui est présent dans la sous requête basée sur la Id de l'itération courante. Pouvez-vous m'aider s'il vous plaîtvaleur de requête externe n'est pas pu utiliser dans la requête intérieure

+0

Que voulez-vous dire par ne pas pouvoir? Qu'essayez-vous de faire? – sagi

+0

Je veux obtenir l'email basé sur la condition de Contact.AccountId = Account.Id pour chaque rangée dans la sortie – Gopi

+0

Joignez la table de contact avec la table de compte, puis employez-la. – Madhukar

Répondre

0

Je ne suis pas sûr comment vous exécutez la requête, et comment vous accédez au résultat, mais si vous le faites dans un endroit qui ne vous donne pas le résultat de manière dynamique, ce qui signifie que vous essayez d'accéder aux colonnes par le nom attendu, c'est-à-dire en essayant d'obtenir la colonne "email" d'une manière ou d'une autre, alors vous devez corriger un petit problème dans la requête.

Vous devez ajouter l'opérateur AS pour donner à votre sous-requête un nom significatif comme email comme ceci:

... 
(select Email from Contact where AccountId = Account.Id) as email, 
... 

Voir violon ici par exemple de travail: db-fiddle

0

Vous pouvez vous débarrasser du sous scalaire -query et juste mettre une jointure à la table CONTACT à la place. Ce qui suit suppose que la table CONTACT est une relation facultative.

SELECT 
    con.email, 
    acct.Id, 
    acct.BillingCity, 
    acct.BillingCountry, 
    acct.BillingPostalCode, 
    acct.BillingState, 
    acct.BillingStreet, 
    acct.Name, 
    acct.Phone 
FROM account acct 
    LEFT OUTER JOIN 
    contact con ON con.account_id = acct.account_id 
WHERE acct.LastModifiedDate < #[flowVars['timestamp']]