select Sum(1) as GroupNo ,VENDOR_NO   ,ITEM_NO  ,RECIVE_DATE  , QTYfrom Tablewhere....
group by VENDOR_NO ,ITEM_NO,RECIVE_DATE ,QTY

解决方案 »

  1.   

    你试试下面的,看看行不行(我没有试)SELECT IDENTITY(INT, 1,1) AS COUNT_NO,VENDOR_NO,ITEM_NO,RECIVE_DATE,QTY
       INTO #TEMPTABLE 
       FROM TABLENAME
       ORDER BY VENDOR_NO,RECIVE_DATESELECT COUNT_NO-MIN_COUNT_NO+1,VENDOR_NO,ITEM_NO,RECIVE_DATE,QTY
       FROM #TEMPTABLE AS A
            INNER JOIN (SELECT MIN(COUNT_NO) AS MIN_COUNT_NO FROM #TEMPTABLE GROUP BY VENDOR_NO) AS B
            ON A.VENDOR_NO=B.VENDOR_NO
       ORDER BY VENDOR_NO,COUNT_NO
       DROP TABLE #TEMPTABLE
      

  2.   

    ldy(罗大佑) :不对啊,在帮忙看看吧!
      

  3.   

    select (select count(*) from TableName where VENDOR_NO=a.VENDOR_NO and RECIVE_DATE  <=a.RECIVE_DATE  ) as GroupNo,
    VENDOR_NO,ITEM_NO,RECIVE_DATE ,QTY
    from TableName a
    order by VENDOR_NO
      

  4.   

    不能假设RECIVE_DATE是不重复的
      

  5.   

    一個例子,剛測試好的,你自己套。Create table #tmp(ID1 varchar(10),ID2 varchar(10),Item1 varchar(10))
    INSERT INTO #tmp VALUES ('ID1','D1','TTTTT1')
    INSERT INTO #tmp VALUES ('ID1','D1','TTTTT2')
    INSERT INTO #tmp VALUES ('ID1','D1','TTTTT3')
    INSERT INTO #tmp VALUES ('ID2','D2','TTTTT1')
    INSERT INTO #tmp VALUES ('ID2','D2','TTTTT2')SELECT NULL as Nbr,* INTO #tmp2 From #tmp
    Declare @id int
    ,@ID1 varchar(10)
    ,@ID2 varchar(10)SET @ID2=''
    SET @id=0
    UPDATE #tmp2 SET @id=Nbr=CASE WHEN @ID1=ID1 AND @ID2=ID2 THEN @id ELSE 0 END +1
              ,@ID1=CASE WHEN @ID1=ID1 THEN @ID1 ELSE ID1 END
              ,@ID2=CASE WHEN @ID2=ID2 THEN @ID2 ELSE ID2 ENDSELECT * From #tmp2Drop table #tmp,#tmp2另可參考:
    http://www.csdn.net/expert/topic/769/769259.xml?temp=2.254665E-03
      

  6.   

    如果VENDOR_NO,ITEM_NO,RECIVE_DATE完全相同,可累加
    select (select count(*) from mtlrecv where VENDOR_NO=a.VENDOR_NO and RECIVE_DATE  <=a.RECIVE_DATE  ) as COUNT_NO,
    VENDOR_NO,ITEM_NO,RECIVE_DATE ,sum(QTY)
    from mtlrecv a
    group by VENDOR_NO,ITEM_NO,RECIVE_DATE
    order by VENDOR_NO,RECIVE_DATE---test ok