2012-11-28 35 views
6

Tôi đang cố gắng truy vấn tất cả các Cơ hội có Giá không phải là số nguyên (không có số thập phân) hoặc giá của nó không phải là bội số của 10.Salesforce - SOQL Sử dụng mod() hoặc các hàm toán học tương tự trong SELECT?

Tôi đang cố gắng tìm giá như: U $ S 34,801.23 - U $ S 56,103,69 - U $ S 50,000,12 vv Nhưng không phải: U $ S 49.500,00 - U $ S 19.110.00, v.v.

Có nhiều cơ hội trong cơ sở dữ liệu và tôi có thể xem qua mã nhưng muốn biết bất kỳ ai trong các bạn đều có thể nghĩ ra một cách để đạt được một phần của điều này bằng truy vấn.

Trả lời

4

SOQL sẽ không cho phép bạn thực hiện bất kỳ phép tính nào. Kiểm tra tài liệu herehere:

Bạn phải cung cấp một tên trường giá trị gia khác có nguồn gốc hoặc tính toán được không được phép

Nói chung đó là fieldName = value hoặc datefieldname > YESTERDAY (vài chữ đặc biệt để xử lý ngày tháng).

Dễ nhất là tạo trường công thức trong hồ sơ (suy nghĩ về chúng như cột được tính trong lượt xem trong cơ sở dữ liệu thông thường) với logic của bạn. Nó có thể là loại văn bản, gọi nó là "giá kỳ lạ";) Here's the complete formula functions reference - bạn có MOD(), IF(condition, true, false) các tiện ích khác.

Thông báo trước là bạn có thể không GROUP BY thức (cũng có thủ thuật để vượt qua mà;))

Vì vậy, yeah - nếu đó là một thời gian điều với thể dùng lại nghèo - bộ lọc với mã. Nếu bạn có thể chấp nhận chi phí thấp (công thức không sử dụng bộ nhớ nhưng bạn có thể cần chúng cho các mục đích khác) - hãy tạo một trường.

Các vấn đề liên quan