2012-11-28 8 views
6

Ich versuche, alle Opportunities abzufragen, die einen Preis haben, der keine ganze Zahl ist (keine Dezimalstellen) oder wenn sein Preis kein Vielfaches von 10 ist.Salesforce - SOQL Verwenden Sie mod() oder ähnliche mathematische Funktionen in SELECT?

Ich versuche Preise zu finden wie: U $ S 34,801.23 - U $ S 56,103.69 - U $ S 50,000.12 etc aber nicht: U $ S 49.500,00 - U $ S 19,110.00 etc

Es gibt viele Möglichkeiten in der Datenbank, und ich kann von Code durch sie gehen, aber wollte wissen, ob Jeder von Ihnen kann sich einen Weg vorstellen, um zumindest einen Teil davon durch Abfrage zu erreichen.

Antwort

4

Mit SOQL können Sie keine Berechnungen durchführen. Check docs here und here:

Sie müssen einen nativen wert anderen Feldnamen oder Berechnungen liefern werden nicht

erlaubt

Im Allgemeinen ist es fieldName = value oder datefieldname > YESTERDAY (einige spezielle Literale für Datum Handling) sprechen.

Am einfachsten wäre es, ein Formelfeld im Datensatz zu erstellen (denken Sie über sie wie berechnete Spalten in Ansichten in normalen Datenbanken) mit Ihrer Logik. Es könnte vom Texttyp sein, nennen Sie es "seltsamer Preis";) Here's the complete formula functions reference - Sie haben MOD(), IF(condition, true, false) usw. Goodies.

Die einzige Einschränkung ist, dass Sie nicht GROUP BY Formel (es auch, dass Tricks zu umgehen;))

Also ja - wenn es einmal, was mit einem schlechten Wiederverwertbarkeit - Filter mit Code. Wenn Sie die niedrigen Kosten akzeptieren (Formeln verwenden keinen Speicher, aber Sie benötigen sie möglicherweise für andere Zwecke), erstellen Sie ein Feld.