SQL Server - Autonumerico

   
Vista:

Autonumerico

Publicado por Sebastian (9 intervenciones) el 14/10/2011 16:07:17
Hola:

necesito crear un campo autonumerico en una vista sql,



0 as NUMDOC, así le asigno valor cero a este campo , necesito k este valor sea incrementable por numero de registro...


agradezco cualquier ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de SQL Server
- Cursos de SQL Server
- Temas de SQL Server
- Chat de SQL Server
información
Cursos y Temas de SQL Server
- Manual de SQL Server
- Tablas temporales en el SQL Server
- Curso de SQL Server 2005

Autonumerico

Publicado por diego (5 intervenciones) el 14/10/2011 21:09:29
hechale una ojeada a esta pagina y fijate la seccion de vistas alli encuentras tu respuesta saluds buena suerte

http://support.microsoft.com/default.aspx?scid=kb;en-us;186133
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Autonumerico

Publicado por leonardo_josue (79 intervenciones) el 14/10/2011 21:17:49
Hola Sebastián:

No me quedó claro que es lo que quieres obtener, pero por lo que pude deducir creo que te debería servir la función row_number, checa la liga para ver la sintaxis:

http://msdn.microsoft.com/es-us/library/ms186734.aspx

Checa este script, aquí creo una tabla temporal con 5 registros, con la segunda consulta estoy agregando una columna ID con un consecutivo, para que se vea la diferencia con el dato los estoy ordenando de manera descendente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
declare @Tabla table (campo varchar(10))
insert into @Tabla values ('registro 1')
insert into @Tabla values ('registro 2')
insert into @Tabla values ('registro 3')
insert into @Tabla values ('registro 4')
insert into @Tabla values ('registro 5')
select * from @Tabla
/*
campo
----------
registro 1
registro 2
registro 3
registro 4
registro 5
*/
 
select campo, row_number() over (order by campo desc) id from @Tabla
/*
campo      id
---------- --------------------
registro 5 1
registro 4 2
registro 3 3
registro 2 4
registro 1 5
*/


Si esto no es lo que necesitas, te pediría que nos explicaras un poco mejor qué necesitas obtener como salida, poniendo algunos datos de ejemplo.

Saludos
Leo.
Si
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Autonumerico

Publicado por Sebastian (9 intervenciones) el 14/10/2011 21:58:00
Sorry por la falta de informacion y gracias por responder estoy creando una vista en la cual necesito que el campo NUMDOC sea autonumerico, como pueden ver a continuación NUMDOC es un campo k no existe hasta el momento yo le estoy dando el valor pero necesito k sea autoincrementable les dejo la vista para ver si alguien me puede hechar una mano con esto de antemano muchas gracias

ALTER VIEW [dbo].[V_ClienteConSaldo_SinVentas]
AS
SELECT A.Año,
A.Mes,
A.Compañia,
A.Cliente,
1 as NUMDOC,
1 as DOCREF,
SUBSTRING(A.PRDSKU,0,3) AS GRPCSV,
SUBSTRING(A.PRDSKU,3,2) AS SGRCSV,
SUBSTRING(A.PRDSKU,5,2) AS PRDCSV,
A.PRDSKU,
'US$' AS MNDCSV,
B.VALVOP,
0 as CANCSV,
0 AS PUMCSV,
A.Cajas_EQ,
0 AS VALMON,
0 AS VALUS,
0 AS COMMON,
0 AS COMUS,
0 AS MKTMON,
0 AS MKTUS,
A.SALDO_DISTRIBUIDO,
'PROVISION' AS TIPO,
'PROVISION' AS DOCUMENTO


FROM dbo.V_Profit_Saldo_Marketing_Provision_Distribuido AS A LEFT OUTER JOIN
TablasTransaccionales.dbo.V_AS400_PFMVOP02 AS B

ON
A.Mes = B.MESVOP AND
A.Año = B.ANOVOP AND
B.MNDVOP = 'US$'


WHERE A.PRDSKU='184004' OR
A.PRDSKU='184005' OR
A.PRDSKU='162503'

GROUP BY

A.Año,
A.Mes,
A.Compañia,
A.Cliente,
A.PRDSKU,
B.VALVOP,
A.Cajas_EQ,
A.SALDO_DISTRIBUIDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Autonumerico

Publicado por leonardo_josue (79 intervenciones) el 14/10/2011 22:11:44
¿De pura casualidad probaste alguna de las dos posibilidades que te propusimos Diego y yo (RANK o ROW_NUMBER? Si fue así entonces puedo suponer que no te sirvieron, pero tampoco nos comentas nada al respecto. Un poco más de cuidado en la redacción de tus post's...

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Autonumerico

Publicado por Sebastian (9 intervenciones) el 14/10/2011 22:22:51
Compadreee...disculpa la verdad es k respondi antes de probar la solucion igual les agradezco pork el row_number me sirvio para crear lo k queria les dejo como lo hize para quien le sirva...

SELECT
A.Año,
A.Mes,
A.Compañia,
A.Cliente,
* ROW_NUMBER()OVER(ORDER BY A.AÑO) as NUMDOC,
* ROW_NUMBER()OVER(ORDER BY A.AÑO) as DOCREF,
SUBSTRING(A.PRDSKU,0,3) AS GRPCSV,
SUBSTRING(A.PRDSKU,3,2) AS SGRCSV,
SUBSTRING(A.PRDSKU,5,2) AS PRDCSV,
A.PRDSKU,
'US$' AS MNDCSV,
B.VALVOP,
0 as CANCSV,
0 AS PUMCSV,
A.Cajas_EQ,
0 AS VALMON,
0 AS VALUS,
0 AS COMMON,
0 AS COMUS,
0 AS MKTMON,
0 AS MKTUS,
A.SALDO_DISTRIBUIDO,
'PROVISION' AS TIPO,
'PROVISION' AS DOCUMENTO


FROM dbo.V_Profit_Saldo_Marketing_Provision_Distribuido AS A LEFT OUTER JOIN
TablasTransaccionales.dbo.V_AS400_PFMVOP02 AS B

ON
A.Mes = B.MESVOP AND
A.Año = B.ANOVOP AND
B.MNDVOP = 'US$'


WHERE A.PRDSKU='184004' OR
A.PRDSKU='184005' OR
A.PRDSKU='162503'

GROUP BY

A.Año,
A.Mes,
A.Compañia,
A.Cliente,
A.PRDSKU,
B.VALVOP,
A.Cajas_EQ,
A.SALDO_DISTRIBUIDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar