![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Hacer un and en una consulta SQL
Amigos, estoy haciendo una aplicación en Delphi 7. Esta aplicación hace uso de varias tablas Paradox. En una de estas tablas, tengo una con un campo de tipo SHORT llamado INFO. Me gustaria hacer una consulta que me seleccionara los registros que al hacerle un and al campo INFO con un valor entero (máscara) me retorne el valor esperado.
Por ejemplo: SELECT * FROM FACTURAS WHERE (INFO AND 8) = 8 Muchas gracias. |
#2
|
||||
|
||||
Según creo que pides:
Sino es así explícalo más ampliamente. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
![]() |
#3
|
|||
|
|||
No amigo, no es tan fácil ni tan obvio, al menos lo veo más complicado. El campo info como ya dije es un valor entero y estoy usando los bits para guardar más de una cosa en un único valor.
Por ejemplo, el bit 7 significa que la factura está cancelada, el 6 que fue impresa, el 5, el 4 y el 3 el tipo de factura, etc. Entonces yo quiero en una consulta seleccionar todas las facturas que no están canceladas (bit 7 = 1) sin importarme el valor que puedan tener los demás bits. Si pudiera en una sentencia SQL hacer lo siguiente:
Estaría recuperando todos los registros (facturas) que el bit 7 del campo INFO lo tienen en 0. Me expliqué mejor esta vez? Última edición por dtomeysoto fecha: 15-01-2010 a las 17:39:49. |
#4
|
||||
|
||||
Es que eso en SQL no te va a funcionar al menos en Paradox.
Hubiese sido mejor en el caso de persistir en la idea de guardar en un solo campos tantas cosas utilizar un campo texto de ancho 8, en el que solamente sean válidos los 0 y 1, de esta manera con la función extract te sería fácil hacer lo que quieres. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
![]() |
#5
|
|||
|
|||
Bueno creo que voy a darme por vencido y probar algo como lo que me dices o sino poner los campos según sean mis necesidades aunque esto uncremente el tamaño de la base de datos.
Quería optimizar el espacio porque esta aplicación es para un PC algo viejito pero bueno no creo que pasando yo tanto trabajo logre mucho. Gracias a todos, byeee |
#6
|
||||
|
||||
![]() Oye eso lo estas complicando mas de lo que deberias, normalmente ese tipo de manejos se hace con un campo de estado, ya sea integer o un campo de tipo varchar de un solo caracter, y guardas los estados por ejemplo:
A=activa C=cancelada E=emitida D=Devuelta o los que necesites, y luego con un simple where podrias hace lo que necesitas. Es altamente recomendable que el estado quede independizado del tipo de facturas, y asi facilmente podrias combinar 2 wheres, por ejemplo asumiendo que tipo 1= Contado y 2=Credito podria ser asi: Con eso filtrarias las facturas de contado que fueron impresas. Espero te sirvan estas ideas. Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!! |
#7
|
||||
|
||||
![]() Cita:
Explicacion: Todos los numero entre 128 y 255 tienen el bit # 7 con uno(1). ![]()
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 Última edición por rgstuamigo fecha: 15-01-2010 a las 20:39:15. |
#8
|
|||
|
|||
Entiendo más o menos lo que deseas hacer, me parece que son operaciones con bits yo en sql he usado esto
Ejemplo: quizas puedas usar el mismo ampersand pero en sql tuve que usar el valor ascii saludos.
__________________
"La información tiene más valor cuando se comparte" Última edición por marcoszorrilla fecha: 18-01-2010 a las 19:07:51. |
#9
|
|||
|
|||
Y esto se puede hacer en tablas paradox?
Cual es el significado del @? |
#10
|
|||
|
|||
Cita:
en el caso de la instrucción dentro de la consulta (ascii(macc.nivel_acceso) & ascii(rol.nivel_acceso), el ampersand hace la operacion and (lógico) a nivel de bits. Saludos.
__________________
"La información tiene más valor cuando se comparte" Última edición por fer21unmsm fecha: 21-01-2010 a las 21:03:49. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
hacer consulta en un query | Carlos León | Conexión con bases de datos | 2 | 22-09-2008 10:06:51 |
hacer un SUM de una consulta ya hecha | egarc | Conexión con bases de datos | 9 | 27-05-2008 09:10:43 |
Problema al hacer consulta SQL | pabliyo | SQL | 6 | 29-01-2008 10:56:17 |
hacer una consulta de eliminacion | JODELSA | SQL | 6 | 07-06-2005 16:01:36 |
![]() |
|