ПРОГРЕСС ODB C ГРУППА ПО СТАТЬЯМ - PullRequest
0 голосов
/ 07 мая 2020

Я все еще совершенствую свои навыки написания запросов, и у меня небольшая проблема с выбором, который использует статическую функцию, такую ​​как средний max et c. Сначала я написал простой запрос на основе одной таблицы, и он отлично работает:

select e.Article, avg(e.Price) as 'Average', max(e.Price) as 'Max', min(e.Price) as 'Min' from pub.E_ArtPrice e
group by e.Article
order by e.Article

Следующим шагом было создание чего-то более сложного для получения информации, которая действительно полезна для меня:

Select m.Part, m.Quantity, m.OnHand, m.postingdate, m.storagearea, p.MEM_PostingCode_ID, koss.Description, ko.Carrier, avg(e.price) as 'Average', max(e.price) as 'Max', min(e.price) as 'Min'
from pub.MLL_Movements m inner join pub.MEM_PostingCode p on (m.MEM_PostingCode_Obj = p.MEM_PostingCode_Obj)
left outer join pub.s_Carrier ko on (m.CostAccObject_Obj = ko.S_Carrier_Obj)
left outer join pub.s_CostCentre kos on (m.CostAccObject_Obj = kos.S_CostCentre_Obj)
left outer join pub.S_CostCentreSpr koss on (kos.CostCentre = koss.CostCentre)
left outer join pub.E_ArtPrice e on (m.Part = e.Article)
where p.MEM_PostingCode_ID = 'AUKJ'

Я не помещал сюда группу по, потому что после многих попыток это не сработало.

введите описание изображения здесь

1 Ответ

0 голосов
/ 07 мая 2020

Все ваши select столбцы, кроме aggregate columns, должны быть в вашем предложении group by, поэтому попробуйте следующее

   Select m.Part, m.Quantity, m.OnHand, m.postingdate, m.storagearea, p.MEM_PostingCode_ID, koss.Description, ko.Carrier, avg(e.price) as 'Average', max(e.price) as 'Max', min(e.price) as 'Min'
    from pub.MLL_Movements m inner join pub.MEM_PostingCode p on (m.MEM_PostingCode_Obj = p.MEM_PostingCode_Obj)
    left outer join pub.s_Carrier ko on (m.CostAccObject_Obj = ko.S_Carrier_Obj)
    left outer join pub.s_CostCentre kos on (m.CostAccObject_Obj = kos.S_CostCentre_Obj)
    left outer join pub.S_CostCentreSpr koss on (kos.CostCentre = koss.CostCentre)
    left outer join pub.E_ArtPrice e on (m.Part = e.Article)
    where p.MEM_PostingCode_ID = 'AUKJ'
group by m.Part, m.Quantity, m.OnHand, m.postingdate, m.storagearea, p.MEM_PostingCode_ID, koss.Description, ko.Carrier
...