¿SQL del Grupo de opciones?

Estoy utilizando el dreamweaver MX. He creado una búsqueda avanzada con 1 campo de texto y 4 list/menú . Le he añadido 2 grupos de opciones, de 3 botones de opción cada 1 (AND, OR y NOT), para poder dar más diversidad a la búsqueda.
El botón de opción 1º se llama menu 1, y lo he añadido al SQL avanzado del juego de registros así : AND menu1="AND" . AND es el valor que tiene activado, al igual que para los otros OR y NOT.
El código que tengo ahora es éste:
SELECT *
FROM consul
WHERE NombreCompañía LIKE '#URL.empresa#%' AND NombreProducto
LIKE '%#URL.producto#%' AND Tipo LIKE '%#URL.tipo#%' AND Provincia LIKE '%#URL.provincia#%'
ORDER BY NombreCompañía ASC
¿Qué expresión tengo que utilizar para seleccionar esa opción en sql? ¿Para utilizar el grupo de opciones que tengo que utilizar? Puedo utilizar un bluce tipo if..else igual que en C?
Gracias

1 Respuesta

Respuesta
1
Creo que entiendo tu pregunta. Quieres configurar una sentencia SQL Según lo que marque el usuario. Si pone el texto de la empresa y marca AND y el texto de la provincia quieres que busque esa empresa de esa provincia con un AND.
La solución es muy sencilla pero lleva mucho trabajo. Una Vez termunada se puede simplificar mucho, y ademas, dentro de unos cuantos algoritmos parecidos ya lo escribirás simplificado.
Tienes que escribir TODAS LAS OPCIONES, me explico;
1 - Solo empresa
Select *
From COnsul
Where NombreCompañia Like "#url.Empresa#"
2 - Empresa AND producto
Select*
from Consul
WHERE NombreCompañía LIKE '#URL.empresa#%' AND NombreProducto
LIKE '%#URL.producto#%'
3-
.....
Muy muy largo y muy pesado. (Yo me he visto obligado a realizarlo com más de 32 OPCIONES de consultas muy muy complicadas)
Ignoro si el sistema que usas permite escribir las sentencias SQL en una CADENA DE TEXTO que suego la ejecutas. Si lo permite la solución es sencilla. Vasta con unos condicionales.
StrSQL=""
Strsql = Strsql & " Select * "
Strsql = Strsql & " From Consul Where "
Iniciado = 0
If url.Empresas <> "" then
Strsql = strsql & " NombreCompañía LIKE '#URL.empresa#% "
Iniciado = 1
END IF
If MarcaAND & INICIADO = 1 then
Strsql = strsql & " AND "
else
...
Así es mucho más sencillo ¿NO?
De todas formas lo mejor es optar por un ANÁLISIS de lo que quiere el USUARIO. Si solo va a realizar 4 ó 6 opciones de consultas distintas se puede restringir en el formulario unos requisitos mínimos de consulta. Así si no pone el nombre de la empresa y pulsa buscar se le muestra un mensaje de ERROR y se le pide que introduzca el nombre de la empresa que es campo obligatorio. También con COMBOBOX se simplifica mucho el trabajo. Y con combobox que se rellenan automáticamente después de untroducir la empresa...
Todo esto es un mundo. Pero creo que ya tienes la solución.
Un Saludo
Jorge
P.D.: Siento el retraso, pero tengo puesto que no me podáis hacer más de dos preguntas y no se como se han juntado 12 en pocos días.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas