FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
como obtener un unico valor entre dos campos de folio de sql server
Tengo una tabla que cada vez que se solicite un tramite registro el num de aprobacion y otros datos, en esta tabla guardo informacion de folio que me autorizan a usar, por decir folio inicio y folio final, la situacion se presenta cuando comienza a tener mas tramites, debo obtener solo el numero de aprobacion para el folio que estoy usando.
este es ta estructura tabla: sellos_prt plaza char(2), tipo char(1), numtram int, inicio char(12), final CHAR(12), numaprobacion char(12) por ejemplo: plaza=01, tipo=1, inicio=1, final=10, numaprobacion=380 plaza=01, tipo=1, inicio=11, final=20, numaprobacion=885 Cuando yo solicite el folio 3 me debe regresar el numaprobacion= 380 (que esta entre ese rango), para el folio 17 me debe regresar el numaprobacion=885, para el folio 5 me debe de regresar el numaprobacion= 380 y asi. cree una consulta: select top 1 numaprobacion from selloscfd_prt where plaza='01' and tipo='1' and inicio>='5' and final<='5' pero no es la esperada, me podrian ayudar les agradesco, gracias |
#2
|
||||
|
||||
Creo que sería mejor que te estuvieras basando en la serie, en lugar de solamente el folio.
Al crear tu factura, que se seleccione la serie que vas a usar para facturar y con eso obtienes el número de aprobación y el siguiente folio... te convendría tener un lugar donde vayas guardando el siguiente folio disponible. O podrías crear una tabla donde estén todos los folios que generaste e irles cambiando el estatus dependiendo de lo que le hagan a la factura (factura, devolución, cancelación). Si solo vas a pedir el número de folio cuando solo tienes capturado el rango, creo que te la vas a complicar más de lo normal. Por cierto, te recomiendo ampliamente que los números los manejes como números. Los folios nunca van a contener letras por lo que te recomiendo que los declares como int y no como char.... además, si lo dejas así como char, deberás tener MUCHO cuidado porque para un char en SQL, ' 1', no es lo mismo que '1 '... y cuando quieras ordenar por folio, te vas a topar con dolor de cabeza ya que primero va a ordenar todos los 1, luegos todos los 2, etc (1, 10, 11, 12... 2, 20, 21... 3, 30, 31...). por último, al ser char(12), significa que siempre se van a guardar 12 caracteres, así que estas guardando valores: Código:
'1 '
__________________
Última edición por ContraVeneno fecha: 03-05-2011 a las 01:21:14. |
#3
|
|||
|
|||
Cita:
|
#4
|
||||
|
||||
el problema puede venir porque está buscando un '5' sin espacios y en la base de datos está con todos los espacios ya que el campo es char(12).
tendría que hacer una conversión, o utilizar las funciones rtrim, ltrim o cambiarlo a varchar.... o lo más sencillo, manejar los números como números y declararlo como int.
__________________
|
#5
|
|||
|
|||
Saludos a todos, con respecto a la duda de como obtener un unico valor entre dos campos de folio de sql server, comento que por un lado tengo una tabla de folios que al generarse la factura se va a actualizando el folio, la tabla que describo como sellos_prt la uso para obtener un num de aprobacion, lo que significa que solo me autorizan un determinado rango de folios y no puedo generar mas facturas hasta que no me vuelva a autorizar mas folios.
Este num de aprobacion es importante por que necesito obtener por medio de una consulta de acuerdo al folio me de el num. de aprobacion. Por otro lado ya los cambie los campos inicio y final por enteros y no me regresa nada de valor. select top 1 numaprobacion from selloscfd_prt where plaza='01' and tipo='1' and inicio>=5 and final<=5 alguna suferencia les agradesco, gracias |
#6
|
|||
|
|||
Hola espero esto te sirva ejecutalo en el manejador de consultas de SQL Server en cualquier base de Datos pues crea temporales.
A mi me salio lo que pedías. salu2 |
#7
|
|||
|
|||
saludos a todos, si pues ya lo comprove si usar temporales, y resulto es buscar un rango de folios sabiendo el folio que le voy a pasar como parametro
gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
FOR XML + SQL SERVER 200 y campos con valor null | Enan0 | SQL | 2 | 07-08-2007 01:45:55 |
Ayuda, Select que rescate el menor valor(unico) | Overfind | SQL | 1 | 03-10-2006 05:16:31 |
Login contra unico server | chimorito | Linux | 1 | 17-05-2005 18:52:54 |
como obtener el valor de un campo | Yoli | Conexión con bases de datos | 2 | 23-03-2005 16:04:24 |
Como Obtener el valor de mi Generador | NickName | Firebird e Interbase | 2 | 26-07-2003 20:54:50 |
|