将分组作为一组行进行分组

时间:2014-08-12 13:39:21

标签: sql sql-server tsql

我需要获取执行次数或组中某个条件的次数。

例如,我有一个有2个项目的组,但每个项目都允许存在x次,因此整个组被认为是有效的。

http://s9.postimg.org/jlw8w7ihb/8_12_2014_9_31_52_AM.png“数据”

对于上面的屏幕截图或测试数据数据,我应该得到一个执行(该组已经满足最小数量的次数作为一组),为整个报价(190),因为每个{{1} }已达到groupID列的最低要求,仍在ItemMinQuantity

之内

当然,数据将包含多个不同数量的组和项目。 我顺便使用MSSQL 2012 ...

示例测试数据:

ItemMaxQuantity

1 个答案:

答案 0 :(得分:0)

这是一个模糊的问题陈述

select OfferGroupID, count(*) 
  from table 
 where TotalQtySOld >= ItemMinQty 
   and TotalQtySOld <= ItemMaxQrty 
   and not exists ( select 1 
                      from table t
                     where t.OfferGroupID = table.OfferGroupID 
                       and (    T.TotalQtySOld < T.ItemMinQty 
                             or T.TotalQtySOld > T.ItemMaxQrty )
 group by OfferGroupID