Epicor BAQ - рассчитанные поля
Надеюсь, у вас все хорошо, и помогите мне с нижеследующим запросом о BAQ.
Пожалуйста, посмотрите пример ниже - текущие результаты
+-------+------+--------------+------+
| Order | Part | Ship By Date | Wave |
+-------+------+--------------+------+
| 1231 | A | 11/04/2018 | 333 |
| 1231 | A | 11/04/2018 | 257 |
| 2522 | C | 11/04/2018 | 333 |
| 2556 | A | 11/04/2018 | 0 |
+-------+------+--------------+------+
Мне нужно найти способ, используя рассчитанные поля или другие параметры в BAQ, чтобы увидеть только одну волну нет. для каждой строки заказа. Что-то вроде покажи мне верхнюю волну, когда корабль по дате и порядку нет. одинаковы еще 0 конец
+-------+------+--------------+------+
| Order | Part | Ship By Date | Wave |
+-------+------+--------------+------+
| 1231 | A | 11/04/2018 | 333 |
| 2522 | C | 11/04/2018 | 333 |
| 2556 | A | 11/04/2018 | 0 |
+-------+------+--------------+------+
Надеюсь, вы сможете помочь, большое спасибо заранее.
1 ответ
Надеюсь, эта идея поможет. В Epicor 10 вы должны быть в состоянии создать общее табличное выражение (CTE). Из вашего примера я бы создал 2 CTE. Один для каждого из наборов результатов. Для второго CTE выберите группу MAX(Заказ) по дате отгрузки. Затем создайте новый TopLevel, чтобы объединить оба CTE по номеру заказа и получить желаемые результаты.
У меня нет Epicor 10, доступной для меня, но я достиг чего-то подобного, создав подзапросы.
Вам нужно будет использовать (как я полагаю, Epicor Calles) внутренние запросы. Ваш внутренний подзапрос необходимо будет установить в качестве параметра Top с параметром сортировки по убыванию волны и возвращению четырех полей, перечисленных в вашем примере. Затем вы присоедините таблицу к себе с полями order, part и shipby в качестве значений ключа. Это должно работать.
Если у вас есть доступ к экземпляру SSMS, вы можете попробовать что-то вроде:
SELECT DISTINCT Order, Part, ShipByDate, Wave
FROM [Table] t
WHERE Wave = (SELECT TOP 1 WAVE FROM [Table] t2 WHERE t.Order = t2.Order and t.Part = t2.Part and t.ShipByDate = t2.ShipByDate ORDER BY Wave DESC)