2017-03-16 11 views
1

我有一个5列的表:suppliercode,articlecode,price,date,ArticleChanges。我想要的是计数的论文中,价格并没有改变(其结果将是一个额外的列 - ArticleChanges) 例如:在SQL Server中计数没有价格变化的文章

enter image description here

对于供应商12345我会从1篇共2篇文章没有改变价格。

+1

请阅读http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557和接受的答案 –

回答

2

这个想法是由suppler和文章聚合。然后,你可以比较的最低和最高价格:

select suppliercode, articlecode 
from t 
group by suppliercode, articlecode 
having min(price) = max(price); 
0

你可以做戈登已经提出并使用“具有”声明,因为它是一个相当沉重的查询可以潜在地影响性能,或者你可以做类似下面的事情:

Select * From (
    Select 
     Min(Price) as Minimum, 
     Max(Price) as Maximum, 
     SupplierCode, 
     ArticleCode 
    From 
     t 
    Group by 
     SupplierCode, 
     ArticleCode) MainQuery 
    Where MainQuery.Minimum = MainQuery.Maximum 

看看哪一个表现更好,因为我确定有些情况下哪一个表现更好。