Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Problema al generar un secuencial

Estas en el tema de Problema al generar un secuencial en el foro de PostgreSQL en Foros del Web. Hola yo genero mi secuencial por medio de esta sintaxis: SELECT MAX("ID_FCHA_PSVO")+1 AS "VALUE" FROM "T_MAE_MNU_FCHA_PAM" WHERE "ID_PRVNCIA" = 6 El problema que tengo es ...
  #1 (permalink)  
Antiguo 12/09/2012, 09:44
Avatar de Sumerio  
Fecha de Ingreso: octubre-2009
Mensajes: 195
Antigüedad: 14 años, 6 meses
Puntos: 6
Pregunta Problema al generar un secuencial

Hola yo genero mi secuencial por medio de esta sintaxis:

SELECT MAX("ID_FCHA_PSVO")+1 AS "VALUE"
FROM "T_MAE_MNU_FCHA_PAM"
WHERE "ID_PRVNCIA" = 6


El problema que tengo es que como haria para sino existe ID_FCHA_PSVO de este provincia, me genere automaticamente 1, como siempre lo genero a partir de el maximo valor, pero si no existe que me genere por defecto 1.
  #2 (permalink)  
Antiguo 12/09/2012, 15:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema al generar un secuencial

No tengo una consola de postgres a la mano, pero me imagino que si la provincia no existe, esa consulta te devuelve un null.

Para tratar los valores nulos puedes hacer uso de la función coalesce.
Una vez se cambian los valores nulos por 0, al sumar 1 ya queda lo que buscas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 13/09/2012, 15:05
Avatar de Sumerio  
Fecha de Ingreso: octubre-2009
Mensajes: 195
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: Problema al generar un secuencial

Buenas tardes, encontre la solucion, les paso a ustedes para la comunidad:

SELECT COUNT("ID_FCHA_PSVO") AS "COUNT",
CASE COUNT("ID_FCHA_PSVO")
WHEN 0 THEN 1
ELSE MAX("ID_FCHA_PSVO")+1
END AS "VALUE"
FROM "T_MAE_MNU_FCHA_PAM"
WHERE "ID_PRVNCIA" = 6
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:01.