PDA

Ver la Versión Completa : Extracción de campos


pablocarlos
09-02-2021, 12:57:54
Saludos. Tengo una tablas en sql y necesito encontrar tres campos. Numero, Sorteo, Pais, Donde pais se esta pasando por parametro.
Escribo esto -->
SELECT id_tiquet, Numero, Sorteo, Pais FROM tiket
Where Numero = (SELECT MAX(Numero) from tiket WHERE Pais = : pais) or Sorteo = (SELECT MAX(Sorteo) from tiket where Pais = : pais)
order by Sorteo desc LIMIT 1
Obvio que no trae lo que necesito.
El numero y sorteo debe ser el valor mayor dentro de la tabla filtrando por pais, osea Chile sorte 3 numero 49
Donde todos los registros de la tabla encuentra a todos los de Chile y dentro de ese pais el sorteo max y el numero max. Obvio que no funciona como es debido. Se agradece alguna sugerencia. Saludos!

kuan-yiu
09-02-2021, 13:07:10
No sé si entendí bien los datos de la tabla
select max(sorteo) from ticket
where numero=(select max(numero) from tiket where pais= : pais)

pablocarlos
09-02-2021, 13:26:38
Gracias Kuan_yiu

select Numero, Sorteo, Pais, max(Numero) from tiket
where Sorteo=(select max(Sorteo) from tiket where pais= : pais)
order by Sorteo desc LIMIT 1

Haciendo pruebas con tres paises no da el resultado deseado
Pais "Argentina" bien
Pais "Chile" bien
Pais "Uruguay" resultado numero max "1000000" sorte "2" pais "Argentina" cuando debería ser numero max 68 sorteo 2 pais Uruguay.
Sigo probando...

pablocarlos
09-02-2021, 15:01:03
select Numero, Sorteo, Pais, max(Numero) from tiket where Sorteo=(select max(Sorteo) from tiket where pais= : pais) order by Sorteo desc LIMIT 1
Gracias Kuan_yiu

Haciendo pruebas con tres paises no da el resultado deseado
Pais "Argentina" bien
Pais "Chile" bien
Pais "Uruguay" resultado numero max "1000000" sorte "2" pais "Argentina" cuando debería ser numero max 68 sorteo 2 pais Uruguay.
Sigo probando... Creo que debería filtrar primero por pais, luego dentro del país por max(sorteo) y dentro de país y sorteo y desde los valores encontrados mostrar el max(numero).

kuan-yiu
09-02-2021, 15:33:02
Pon un ejemplo de los datos y exactamente la línea que quieres conseguir.

pablocarlos
09-02-2021, 16:30:55
Pon un ejemplo de los datos y exactamente la línea que quieres conseguir.
Perfecto, Una tabla llamada tiket, campos ---> sorteo, numero, pais, id. tiket (hay otros campos pero no estàn involucrados) Concretamente necesito que busque un pais (ese sería el parametro) dentro de ese país encuentre el número de sorteo mayor (max(Sorteo) y dentro de ese rango de sorteo el numero mayor (max(numero)...
Ejemplo
tengo los siguientes datos pais uruguay (obvio hay otros paises) sorteos 1, 2, 3 (debería filtrar por el 3) numeros 1,2 ....1002 sorteo 2, números 1,2..1000 sorteo 3, (debería mostrar sorteo 3 y el numero 1000). Cerrando, con el parametro 'Uruguay' debería traer sorteo 3 numero 1000. Gracias por responder. Saludos

kuan-yiu
09-02-2021, 17:06:00
Si he entendido bien quieres la línea completa. Para el país indicado el número máximo de cada sorteo.
select a.* from tiket a
where a.pais= : pais and a.numero in
(select max(b.numero) numero from tiket b
where a.Sorteo=b.Sorteo)
order by a.sorteo
Como no indicas que motor de BD usas he tratado de hacerlo sin funciones especiales.

pablocarlos
09-02-2021, 17:21:08
Si he entendido bien quieres la línea completa. Para el país indicado el número máximo de cada sorteo.
Código SQL [-] (https://www.clubdelphi.com/foros/#)select a.* from tiket a where a.pais= : pais and a.numero in (select max(b.numero) numero from tiket b where a.Sorteo=b.Sorteo) order by a.sorteo

Como no indicas que motor de BD usas he tratado de hacerlo sin funciones especiales.
bd mysql. Lo extraño (para mi) que tus lineas funcionan en dos paises, busco un tercero y no encuentra nada, Gracias

Casimiro Notevi
09-02-2021, 17:42:58
Es que después de un montón de mensajes no queda exactamente claro de lo que necesitas, y el motivo es que siempre se dice lo que se está haciendo, pero no realmente lo que se quiere hacer. Lo importante aquí es la estructura de las tablas involucradas (al menos los campos involucrados) y lo que se quiere conseguir.

Siempre aconsejo leer este hilo (https://www.clubdelphi.com/foros/showthread.php?t=93348) donde se explica cómo hacer mejor la pregunta, para obtener una respuesta más acertada.

pablocarlos
09-02-2021, 17:52:13
Es que después de un montón de mensajes no queda exactamente claro de lo que necesitas, y el motivo es que siempre se dice lo que se está haciendo, pero no realmente lo que se quiere hacer. Lo importante aquí es la estructura de las tablas involucradas (al menos los campos involucrados) y lo que se quiere conseguir.

Siempre aconsejo leer este hilo (https://www.clubdelphi.com/foros/showthread.php?t=93348) donde se explica cómo hacer mejor la pregunta, para obtener una respuesta más acertada.


Veamos.... quiero filtrar la tabla tiket con campos pais, sorteo, numero, por un pais dentro de ese pais filtrar por max(sorteo) y dentro de ese sorteo por max(numero). bd mysql



pais = Chile
chile = sorteo 3
chile, sorteo 3 = numero 4
resultado chile, 3, 4 (pais, sorteo(el mayor), numero(el mayor))

Y no se como explicar mejor :(

Casimiro Notevi
09-02-2021, 18:17:56
No sé si entendí bien los datos de la tabla
Pon un ejemplo de los datos y exactamente la línea que quieres conseguir.
Si he entendido bien quieres la línea completa. Para el país indicado el número máximo de cada sorteo.
Como no indicas que motor de BD usas he tratado de hacerlo sin funciones especiales.
..no queda exactamente claro de lo que necesitas.. Lo importante .. es la estructura de las tablas involucradas (al menos los campos involucrados) y lo que se quiere conseguir.
Yo creo que está claro que constantemente se ha repetido que no está claro y que se necesitaría un ejemplo de los datos, estructura de la tabla, etc.
Pero, bien, me parece que ya está más claro, lo que tienes es algo así:

https://i.imgur.com/b2t54pM.png

Y quieres conseguir algo así como:

7 | CHILE | 3 | 16

¿Es eso?

pablocarlos
09-02-2021, 18:34:26
Yo creo que está claro que constantemente se ha repetido que no está claro y que se necesitaría un ejemplo de los datos, estructura de la tabla, etc.
Pero, bien, me parece que ya está más claro, lo que tienes es algo así:


https://i.imgur.com/b2t54pM.png


Y quieres conseguir algo así como:


7 | CHILE | 3 | 16


¿Es eso?
Exacto!

Gracias por tratar de entender

Casimiro Notevi
09-02-2021, 19:58:34
Otra duda, si existe esto:
5 | CHILE | 2 | 28
7 | CHILE | 3 | 16

¿Qué registro debe devolver?

pablocarlos
09-02-2021, 20:07:19
Otra duda, si existe esto:

¿Qué registro debe devolver?
el 7 (mayor sorteo) con mayor numero osea si tengo chile 3, 16 y chile, 3, 17 debería devolver chile, 3, 17

Casimiro Notevi
09-02-2021, 20:36:09
Ya estamos, no se entiende :confused::confused::confused:

pablocarlos
09-02-2021, 21:00:24
Ya estamos, no se entiende :confused::confused::confused:
https://www.clubdelphi.com/foros/data:image/png;base64,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 hwQ8//D+QvGtJRWd8nAAAAABJRU5ErkJggg==
la consulta deberia devolver el id 285 chile, sorteo 2 numero 45 por que dentro de chile el sorteo mayor es el 2 y dentro del sorteo mayor (2) el numero mayor es el 45...

Ya con imagen creo no confundir. Gracias

pablocarlos
09-02-2021, 21:01:00
No me permitio subir imagen

pablocarlos
09-02-2021, 21:28:19
nuevo planteo


Tengo una tabla en mysql con los siguientes campos: id (autoincremental), pais(string), sorteo(int), numero(int).

necesito encontrar una fila con un determinado pais (este por parametro), dentro del pais encontrar el numero de sorteo más alto y dentro del sorteo el numero max... por ejemplo
tengo pais sorteo numero
chile 1 10
chile 1 12
chile 2 100
españa 1 2
españa 1 3
si busco por chile el resultado debería ser : chile-2-100 por que el sorteo mayor es 2 y el número mayor dentro del sorteo es 100. En el caso de españa debería encontrar españa,1,3
por que dentro de españa el numero de sorteo mayor es 1 y el número mayor en número es 3. Espero ser claro. Muchas gracias

Casimiro Notevi
09-02-2021, 22:21:53
chile 1 10
chile 1 12
chile 2 100
españa 1 2
españa 1 3
si busco por chile el resultado debería ser : chile-2-100 por que el sorteo mayor es 2 y el número mayor dentro del sorteo es 100. En el caso de españa debería encontrar españa,1,3
por que dentro de españa el numero de sorteo mayor es 1 y el número mayor en número es 3. Espero ser claro. Muchas gracias
Ya, pero eso no responde a mi duda, imagina que tienes:
#10 chile 1 10
#11 chile 1 120
#12 chile 2 10
#13 españa 1 2
#14 españa 1 3

¿Qué debería sacar de Chile, el registro #12, porque el 2 es mayor que el 1, o debería sacar el registro #11 porque 120 es mayor que 10?

pablocarlos
09-02-2021, 22:26:26
Ya, pero eso no responde a mi duda, imagina que tienes:
#10 chile 1 10
#11 chile 1 120
#12 chile 2 10
#13 españa 1 2
#14 españa 1 3

¿Qué debería sacar de Chile, el registro #12, porque el 2 es mayor que el 1, o debería sacar el registro #11 porque 120 es mayor que 10?
el 12.
primero por pais, dentro de pais por numero de sorteo mayor y luego por numero mayor... en el ejemplo suyo sería el 12. Muchas gracias por estar presente!

Casimiro Notevi
10-02-2021, 08:59:50
Entonces realmente es el mayor sorteo, el número no sirve para nada.

kuan-yiu
10-02-2021, 09:30:53
Hay varios modos de hacerlo espero que este te sirva: Para un país todos los datos de la tupla con el mayor sorteo y dentro de este el mayor numero.
select * from tiket a
where pais= : pais
and sorteo=(select max(sorteo) from tiket )
and numero=(select max(numero) from tiket b where a.sorteo=b.sorteo)

(Aunque yo cuantas más explicaciones leo menos entiendo)

pablocarlos
10-02-2021, 14:03:21
Hay varios modos de hacerlo espero que este te sirva: Para un país todos los datos de la tupla con el mayor sorteo y dentro de este el mayor numero.

(Aunque yo cuantas más explicaciones leo menos entiendo)


Mientras más se aclara mas oscurece....


Para un país todos los datos de la tupla con el mayor sorteo y dentro de este el mayor numero. Exactamente


Probaré. Gracias


Casimiro: El numero si sirve. Kuan-yiu lo resumio perfecto: para cada pais los datos con el mayor sorteo y dentro de este el mayor numero.

Casimiro Notevi
10-02-2021, 16:18:37
A ver, pongamos 2 casos:

#11 chile 1 120
#12 chile 2 10

Antes comentaste que ahí debe devolver el registro #12 porque el sorteo es mayor.
Y en este caso:

#11 chile 2 10
#12 chile 1 120

Debe devolver el registro #11 porque el sorteo es mayor.

O sea, lo dicho, el número no sirve para nada.

La única opción posible para devolver el número mayor es que existan sorteos repetidos:

#11 chile 1 10
#12 chile 1 120

En ese caso devolvería el #12, pero no creo que haya sorteos repetidos, así que insisto en que el número no sirve para nada :)

pablocarlos
10-02-2021, 17:13:51
En ese caso devolvería el #12, pero no creo que haya sorteos repetidos, así que insisto en que el número no sirve para nada :)
hay sorteos repetidos. En un sorteo entran varios numeros por lo que el sorteo 3 (como todos los números de sorteos) tendrá un número del 1 al 1000000.
por eso el resultado debe ser un pais, dentro de ese pais un sorteo mayor y dentro de este un numero mayor.

Gracias por tu interés. Saludos

Casimiro Notevi
10-02-2021, 18:27:58
Es lo que tiene el no explicar bien el problema, que tenemos que dar palos de ciego hasta que poco a poco vamos obteniendo toda la información ;)
Bien, entonces sí te sirve lo último publicado por kuan-yiu ^\||/

pablocarlos
10-02-2021, 18:33:47
Bien, entonces sí te sirve lo último publicado por kuan-yiu ^\||/

Lamentablemente no. Pero sigo insistiendo con lo poco que se de sql. Gracias por estar. Saludos

pablocarlos
10-02-2021, 19:23:51
Bueno. Como siempre cuando sale lo que uno busca, escribo la solución
select id_tiquet, pais, Numero, Sorteo from tiket
where numero <>0 and Pais = : pais and sorteo=(select max(sorteo))
and numero = (select max(numero))
ORDER by Sorteo and Numero desc limit 1


Gracias a todos los que respondieron que de alguna u otra forma han logrado que obtuviera los resultados buscados...

Pido disculpas si "queme" alguna neurona por mis malas explicaciones, "cuando uno sabe lo que quiere cree que el mundo entenderá el problema". Tambien aprendí que debo plantear la duda lo más clara posible y con todos los datos para evitar --> Diria Casimiro "dar palos de ciego"... Gracias y feliz semana a todos!

Casimiro Notevi
10-02-2021, 20:33:09
Me alegro de que por fin lo hayas solucionado ^\||/^\||/^\||/

cloayza
10-02-2021, 21:08:44
Estimado PabloCarlos

Desde el principio no quedó claro su problema, si me permite, le aconsejo para futuras consultas aportar mas antecedentes.

Bueno tomando como base lo que han dicho los compañeros del foro, le propongo la siguiente consulta que creo puede responder a su problema.

Utilicé los datos aportados por Casimiro Notevi...

select A.id_tiquet,
A.pais,
B.sorteo,
B.numero

from tickets A,
(
select tickets.pais,
tickets.sorteo,
max(tickets.numero) numero
from tickets,
(select tickets.pais,
max(tickets.sorteo) sorteo
from tickets
where tickets.pais= : pais
group by 1
) Sorteos

where tickets.pais=Sorteos.pais and
tickets.sorteo=Sorteos.sorteo
group by 1,2
) B
where A.pais=B.pais and
A.sorteo=B.sorteo and
A.numero=B.numero


Espero le ayuda o aporte ideas para que logre la solución....
Saludos cordiales

cloayza
10-02-2021, 22:22:27
Estimado PabloCarlos, está seguro que la consulta arroja los resultados esperados...Tengo mis dudas al respecto...


select id_tiquet, pais, Numero, Sorteo from tiket
where numero <>0 and Pais = : pais and sorteo=(select max(sorteo))
and numero = (select max(numero))
ORDER by Sorteo and Numero desc limit 1


Saludos cordiales

pablocarlos
11-02-2021, 02:08:22
Estimado PabloCarlos
Bueno tomando como base lo que han dicho los compañeros del foro, le propongo la siguiente consulta que creo puede responder a su problema.
De lujo!!!! Muchas gracias!! Saludos