Access - Seleccion registros con coincidencias

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 21 puestos en Access (en relación al último mes)
Gráfica de Access

Seleccion registros con coincidencias

Publicado por Facundo (3 intervenciones) el 22/12/2018 18:35:05
Hola a Todos y todas,

Estoy encallado con un proyecto personal para hacer un peque buscador de buses, he intentado el diseño en SQL de la consulta específica pero no hace exactamente lo que quiero, os explico mi intención

Tengo esta tabla entrada a Acces

Id P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
3 PUYO SANTA CLARA AROSEMENA TOLA TENA ARCHIDONA LORETO EL COCA
4 PUYO BAÑOS DE AGUA SANTA PELILEO AMBATO LATACUNGA QUITO SUR

5 PUYO BAÑOS DE AGUA SANTA RIOBAMBA
6 PUYO MACAS
7 PUYO MACAS GUALAQUIZA
9 PUYO SANTA CLARA AROSEMENA TOLA TENA ARCHIDONA LORETO EL COCA LA JOYA DE LOS SACHAS NUEVA LOJA
10 PUYO BAÑOS DE AGUA SANTA PELILEO AMBATO LATACUNGA QUITO SUR
16 PUYO TAISHA
19 PUYO BAÑOS DE AGUA SANTA PELILEO AMBATO
21 TENA ARCHIDONA LORETO EL COCA
22 EL COCA LA JOYA DE LOS SACHAS NUEVA LOJA
23 AMBATO PELILEO BAÑOS DE AGUA SANTA PUYO SANTA CLARA AROSEMENA TOLA TENA ARCHIDONA LORETO EL COCA
24 EL COCA LORETO ARCHIDONA TENA AROSEMENA TOLA SANTA CLARA PUYO

Querría hacer una selección que me seleccionase todos los registros de esta tabla que cumplen tener los nombres de dos paradas en cualquier posición de sus columnas y siempre en el orden que se requiera. Es decir, si yo entro primero “Tena” y luego “Loreto”, la selección me toma los registros 3, 9, 21, pero no toma el 24, ya que el 24 tiene primero “Loreto” y segundo “Tena”, no cumple el orden en el que se entró la consulta

Hice una consulta el SQL pero debe tener algún error, ya que filtra bien pero en ocasiones además de los resultados buenos da otros añadidos. Hice la Consulta en SQL directamente en el Acces, que por cierto no soy informático y es mi primera vez con SQL, así que seguro es el código más ineficiente de la historia (jaja) Lo pego aquí.

Os agradecería un mundo si me pudieseis ayudar.

Un saludo,

------------------------------------------------------------------------------------------------------------------------------------------------------
Consulta “salida / destino”
--Por teclado se entran primero la ubicación de salida [Entra el lugar de salida]) y luego el destino [Entra destino]
SELECT Rutas.Salida, Rutas.[Hora Salida], Compañias.[Nombre compañia], [Paradas de rutas].P1, [Paradas de rutas].P2, [Paradas de rutas].P3, [Paradas de rutas].P4, [Paradas de rutas].P5, [Paradas de rutas].P6, [Paradas de rutas].P7, [Paradas de rutas].P8, [Paradas de rutas].P9, [Paradas de rutas].P10, Rutas.[Destino Final]
FROM ([Paradas de rutas] INNER JOIN Rutas ON [Paradas de rutas].[Id Rutas] = Rutas.[ID Paradas]) INNER JOIN (Compañias INNER JOIN [Compañias para rutas] ON Compañias.[Nombre compañia] = [Compañias para rutas].Compañias) ON Rutas.[ID Ruta] = [Compañias para rutas].[Id Rutas]
WHERE ((([Paradas de rutas].P1)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P2)=[Entra destino])) OR ((([Paradas de rutas].P3)=[Entra destino])) OR ((([Paradas de rutas].P4)=[Entra destino])) OR ((([Paradas de rutas].P5)=[Entra destino])) OR ((([Paradas de rutas].P6)=[Entra destino])) OR ((([Paradas de rutas].P7)=[Entra destino])) OR ((([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P2)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P3)=[Entra destino])) OR ((([Paradas de rutas].P4)=[Entra destino])) OR ((([Paradas de rutas].P5)=[Entra destino])) OR ((([Paradas de rutas].P6)=[Entra destino])) OR ((([Paradas de rutas].P7)=[Entra destino])) OR ((([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P3)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P4)=[Entra destino])) OR ((([Paradas de rutas].P5)=[Entra destino])) OR ((([Paradas de rutas].P6)=[Entra destino])) OR ((([Paradas de rutas].P7)=[Entra destino])) OR ((([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P4)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P5)=[Entra destino])) OR ((([Paradas de rutas].P6)=[Entra destino])) OR ((([Paradas de rutas].P7)=[Entra destino])) OR ((([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P5)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P6)=[Entra destino])) OR ((([Paradas de rutas].P7)=[Entra destino])) OR ((([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P6)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P7)=[Entra destino])) OR ((([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P7)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P8)=[Entra destino])) OR ((([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P8)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P9)=[Entra destino])) OR ((([Paradas de rutas].P10)=[Entra destino]))
OR ((([Paradas de rutas].P9)=[Entra el lugar de salida]) AND
(([Paradas de rutas].P10)=[Entra destino]));
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 5
Ha disminuido su posición en 21 puestos en Access (en relación al último mes)
Gráfica de Access

Seleccion registros con coincidencias

Publicado por Facundo (3 intervenciones) el 22/12/2018 19:42:55
Disculpas varias que creo que como subí la tabla podria dar pié a confusiones, os la paso de nuevo en imagen.

tabla

Más saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 78
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Seleccion registros con coincidencias

Publicado por Antoni Masana (32 intervenciones) el 24/12/2018 08:15:15
El Access entiende esto que he escrito, otra cosa es como después se lo guarde.

He quitado un montón de paréntesis del WHERE y lo he puesto de forma que se lea mejor, para el humano, access lo lee igual aunque lo pongas en plan churro.

Prueba haber si ahora funciona mejor, con tantos paréntesis puede que alguna condición no estuviese bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Consulta “salida / destino”
 
--Por teclado se entran primero la ubicación de salida [Entra el lugar de salida]) y luego el destino [Entra destino]
 
SELECT Rutas.Salida,
       Rutas.[Hora Salida], Compañias.[Nombre compañia], [Paradas de rutas].P1,
                                                         [Paradas de rutas].P2,
                                                         [Paradas de rutas].P3,
                                                         [Paradas de rutas].P4,
                                                         [Paradas de rutas].P5,
                                                         [Paradas de rutas].P6,
                                                         [Paradas de rutas].P7,
                                                         [Paradas de rutas].P8,
                                                         [Paradas de rutas].P9,
                                                         [Paradas de rutas].P10, Rutas.[Destino Final]
 
FROM ([Paradas de rutas] INNER JOIN Rutas ON [Paradas de rutas].[Id Rutas] = Rutas.[ID Paradas])
                         INNER JOIN (Compañias INNER JOIN [Compañias para rutas] ON Compañias.[Nombre compañia] = [Compañias para rutas].Compañias) ON
                                                                                                Rutas.[ID Ruta] = [Compañias para rutas].[Id Rutas]
 
WHERE ([Paradas de rutas].P1=[Entra el lugar de salida] AND ( [Paradas de rutas].P2=[Entra destino] OR
                                                              [Paradas de rutas].P3=[Entra destino] OR
                                                              [Paradas de rutas].P4=[Entra destino] OR
                                                              [Paradas de rutas].P5=[Entra destino] OR
                                                              [Paradas de rutas].P6=[Entra destino] OR
                                                              [Paradas de rutas].P7=[Entra destino] OR
                                                              [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P2=[Entra el lugar de salida] AND ( [Paradas de rutas].P3=[Entra destino] OR
                                                              [Paradas de rutas].P4=[Entra destino] OR
                                                              [Paradas de rutas].P5=[Entra destino] OR
                                                              [Paradas de rutas].P6=[Entra destino] OR
                                                              [Paradas de rutas].P7=[Entra destino] OR
                                                              [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P3=[Entra el lugar de salida] AND ( [Paradas de rutas].P4=[Entra destino] OR
                                                              [Paradas de rutas].P5=[Entra destino] OR
                                                              [Paradas de rutas].P6=[Entra destino] OR
                                                              [Paradas de rutas].P7=[Entra destino] OR
                                                              [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P4=[Entra el lugar de salida] AND ( [Paradas de rutas].P5=[Entra destino] OR
                                                              [Paradas de rutas].P6=[Entra destino] OR
                                                              [Paradas de rutas].P7=[Entra destino] OR
                                                              [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P5=[Entra el lugar de salida] AND ( [Paradas de rutas].P6=[Entra destino] OR
                                                              [Paradas de rutas].P7=[Entra destino] OR
                                                              [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P6=[Entra el lugar de salida] AND ( [Paradas de rutas].P7=[Entra destino] OR
                                                              [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P7=[Entra el lugar de salida] AND ( [Paradas de rutas].P8=[Entra destino] OR
                                                              [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P8=[Entra el lugar de salida] AND ( [Paradas de rutas].P9=[Entra destino] OR
                                                              [Paradas de rutas].P10=[Entra destino] )
      ) OR
      ([Paradas de rutas].P9=[Entra el lugar de salida] AND   [Paradas de rutas].P10=[Entra destino]
      ) ;

El resto parece correcto.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 21 puestos en Access (en relación al último mes)
Gráfica de Access

Seleccion registros con coincidencias

Publicado por Facundo (3 intervenciones) el 26/12/2018 15:52:33
Gràcies Antoni!!!

pues si, ha corrido perfectamente y filtra aun mejor!! Muchas gracias de nuevo por la revisión.

Facundo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar