本帖最后由 jasonliangbiz 于 2013-11-18 17:15:26 编辑

解决方案 »

  1.   

    SELECT ID=(select count(*) from dbo.RE_T_SALECUST_INFO a where a.OPER_DATE<=dbo.RE_T_SALECUST_INFO.OPER_DATE),
         dbo.RE_T_SALECUST_INFO.OPER_DATE AS 交易时间, 
          dbo.BD_T_GOODS_INFO.CLASS_NO AS 品牌编码, 
          dbo.BD_T_CLASS_INFO.CLASS_NAME AS 品牌
    FROM dbo.RE_T_SALECUST_INFO LEFT OUTER JOIN
          dbo.BD_T_GOODS_INFO ON 
          dbo.RE_T_SALECUST_INFO.ITEM_NO = dbo.BD_T_GOODS_INFO.GOODS_NO LEFT OUTER
           JOIN
          dbo.BD_T_CLASS_INFO ON 
          dbo.BD_T_GOODS_INFO.CLASS_NO = dbo.BD_T_CLASS_INFO.CLASS_NO
      

  2.   

    因为没有主键ID,只能用时间排序统计生成ID,时间精确到毫秒,一般不会重复.
      

  3.   


    这个有个问题,就是如果交易时间是相同的话(数据有相同的交易时间),那么ID号就会相同.是否可以让他们不相同?谢谢.这个在sql server 2000中实现不了,一般只能通过临时表来实现,但视图中有不能创建临时表。哎,如果是在2005及以上版本,那这个就太简单了,用row_number()函数就搞定了