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
因为没有主键ID,只能用时间排序统计生成ID,时间精确到毫秒,一般不会重复.
这个有个问题,就是如果交易时间是相同的话(数据有相同的交易时间),那么ID号就会相同.是否可以让他们不相同?谢谢.这个在sql server 2000中实现不了,一般只能通过临时表来实现,但视图中有不能创建临时表。哎,如果是在2005及以上版本,那这个就太简单了,用row_number()函数就搞定了
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
这个有个问题,就是如果交易时间是相同的话(数据有相同的交易时间),那么ID号就会相同.是否可以让他们不相同?谢谢.这个在sql server 2000中实现不了,一般只能通过临时表来实现,但视图中有不能创建临时表。哎,如果是在2005及以上版本,那这个就太简单了,用row_number()函数就搞定了