entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Como realizar un consecutivo en Sql server 2008?

Quien me ayuda en este siguiente problema?

Tengo la siguiente sentencia sql, la cual realizo los consecutivos..-.

 Select TOP 1 (CODDPTOCATE)+1 AS CODDPTOCATE From HDCATEGO WHERE CODDEPTO='21' 

Y el resultado es: 2104 que en este caso es correcto

pero mi problema es cuando Cree un nuevo departamento y hice el mismo procedimiento para que me genera el consecutivo.

 Select TOP 1 (CODDPTOCATE)+1 AS CODDPTOCATE From HDCATEGO WHERE CODDEPTO='22'

y el resultado = vació

y lo que pretendo es que si el nuevo departamento es 22, que el consecutivo de CODDPTOCATE sea 2201 dependiendo del departamento

ejemplo
Departamento nuevo, codigo "23" y que el CODDPTOCATE sea 2301 para que cuando escoja ese departamento su consecutivo se a normal 2302,2303,2304 y así sucecesivamente

2 Respuestas

1voto

ManHol Puntos1380

Listo encontré la solución a mi problema:
aqui me genera el consecutivo sin problemas así como quería 2202,...

SELECT  TOP 1 FORMAT(CODDPTOCATE+1,'0000') as CODDPTOCATE FROM HDCATEGO WHERE CODDEPTO='22

en caso de que no este un consecutivo esta condición me lo hace:
si es nuevo y no lo encuentra con esta condicion le agrega el '01' al departamento

if textbox1.text="" then
dim departamento as string = combobox.selectedValue.toString
textbox1.text=departamento +"01"
end if

y el resultado va ser '2201'

1voto

memd Puntos210

Hola, Si CODDEPTO es id unico entonces creo que no necesitas el TOP 1,
intenta asi:

SELECT (CODDPTOCATE + 1) AS CODDPTOCATE FROM HDCATEGO WHERE CODDEPTO='22'

También verifica si en realidad se esta guardando el "2200" en CODDPTOCATE.
Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta