sqlserver有这样一个视图存放订货信息:

问题一:
现在要查询货号出现次数大于的1的记录条数
--查询同一个货号出现次数大于1的 比如SEA33C01030 存在3条
select * from v_22 WHERE Bar_No='SEA33C01030'
--按Bar_No,Out_Date,Color_NO,pf_order_NB 分组取出每组Bar_No 大于1的 但是这样查出结果为空
select * from v_22
group by Bar_No,Out_Date,Color_NO,pf_order_NB
having COUNT(Bar_No)>1
---这样OK
select * from v_22
where Bar_No in(
select Bar_No from v_22
group by Bar_No
having COUNT(Bar_No)>1
)
我想知道分组计数的方法哪里错了?
问题二:查询出每个货号和颜色代码对应的订货日期最小的记录,比如这样的记录:

------解决思路----------------------
第一个,其实也就是分组的概念
一个是必须Bar_No,Out_Date,Color_NO,pf_order_NB都相同才认为是一组,一个是Bar_No相同就认为是一组,能一样吗
第二个,
SELECT * FROM(
SELECT ROW_NUMBER()OVER(ORDER BY Out_Date)RN
,*
FROM v_22
)T
WHERE RN=1
------解决思路----------------------
SELECT * FROM(呃,没注意,你试试这个
SELECT ROW_NUMBER()OVER(PARTITION BY Bar_No,Color_NO ORDER BY Out_Date)RN
,*
FROM v_22
)T
WHERE RN=1