进展 ODBC GROUP BY CLAUSE

问题描述 投票:0回答:1

我还在不断提高我的查询编写技巧,我对使用平均最大等静态函数的select有一点问题。首先,我写了一个简单的基于单表的查询,它工作得很完美。

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'

我没有把group by子句放在这里,因为试了很多次都没有成功。

在这里输入图片描述

sql odbc progress
1个回答
0
投票

所有你的 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
© www.soinside.com 2019 - 2024. All rights reserved.