Из нескольких таблиц в настоящее время я выбираю продукт, значение и период контракта. Я хочу сгруппировать результаты по продукту и периоду отгрузки при суммировании стоимости.Oracle SQL: выберите максимальное и минимальное значение из группы
Мой контрактный период может быть основан на прибытии или на отправке. Итак, в настоящее время, чтобы определить, какой контрактный период использовать, я ищу, чтобы узнать, является ли одно из описаний периодов нулевым, а затем заполняет конец периода и начинает даты как на судне, так и на прибытии на основе этого. В частности, я использую следующее.
DECODE((P.SHIP_PERIOD_DESCR), NULL,
'ARRIVE' || ' ' ||P.ARRIVAL_PERIOD_BEGIN || ' - ' || P.ARRIVAL_PERIOD_END,
'SHIP' || ' ' ||P.SHIP_PERIOD_BEGIN || ' - ' || P.SHIP_PERIOD_END)
Мои результаты являются такими:
PRODUCT VALUE CONTRACT_PERIOD
APPLES $600 SHIP 01-FEB-16 - 15-MAR-16
APPLES $700 SHIP 01-MAR-16 - 15-APR-16
LEMONS $200 SHIP 15-JAN-16 - 31-JAN-16
LEMONS $150 SHIP 01-FEB-16 - 15-FEB-16
LEMONS $200 ARRIVE 15-FEB-16 - 28-FEB-16
LEMONS $250 ARRIVE 01-MAR-16 - 15-MAR-16
То, что я хотел бы видеть это минимальное судно или даты прибытия и максимальное судно или дата прибытия каждого продукта как такового:
PRODUCT VALUE CONTRACT_PERIOD
APPLES $1,300 SHIP 01-FEB-16 - 15-APR-16
LEMONS $350 SHIP 15-JAN-16 - 15-FEB-16
LEMONS $450 ARRIVE 15-FEB-16 - 15-MAR-16
Любые предложения по способу определить, какой договор действителен, затем сгруппируйте результаты, используя минимальные и максимальные даты, не меняя дату отправки на дату прибытия.
Вы должны показать свой более полный запрос. –