Entonces vamos a colocar aquí vamos a cómo hacemos para recorrer la tabla bueno la recorremos con un
con un bucle huaylarsh vamos a colocar Weyl.
Si guai para poder recorrer él esta tabla vamos a necesitar una variable una variable de tipo entero
que va a ser el seguimiento por el campo Identity de la tabla por el campo ahí entonces lo vamos a hacer
vamos a declarar de Clear arroba por ejemplo vamos a poner y qué va a hacer un entero y aquí le decimos
mientras si Weyl arroba y sea menor o igual a qué.
Al total de registros de que existen en la tabla turnos 12 vamos a hacer cómo tenemos el total y total
lo que tenemos con Select Count asterisco.
Contamos el total de registros from arroba turnos
si y ahora colocamos la estructura de bloque Veguín.
Para poder procesar todo y vamos a comenzar.
Si esto lo que hace es el Weyl el Weyl se va a ejecutar mientras mientras y sea menor o igual al total
de registros que existe en la tabla temporal.
Para ello necesitamos inicializar la variable arroba y en 1 y también vamos a necesitar incrementar
el valor de esa variable cada vez que tenemos por ese wey.
Entonces vamos a colocar a select set Array
y le voy a colocar
arroba y +1.
Con esto lo que hacemos es incrementar el valor de la variable en un valor cada vez que damos una vuelta
por el bucle guay.
Bien entonces vamos a recorrer esta tabla temporal cómo la recorremos de la siguiente manera Lo que
vamos a preguntar es si en esta tabla el registro el primer registro sigue vamos a obtener como obtenemos
el primer registro viene haciendo un Select Asterisco from arroba turnos Wer el campo Heydi será igual
arroba y que en este momento vale 1 si.
Entonces lo que hacemos aquí es acceder al primer registro de la tabla temporal y lo que tenemos que
hacer aquí es preguntar por ejemplo si este es el primer registro de la tabla temporal pertenece al
paciente número 8.
Cómo preguntamos.
Bueno lo que podemos hacer aquí es declarar otra otra variable sí
o directamente para evitar declarar tantas variables lo vemos osar preguntar ponemos if Chi y aquí lo
que colocamos es de paciente y de paciente.
Si por ejemplo este es resultado de su QWERTY y de paciente es igual a 8 si el turno este turno es del
paciente 8 lo que estoy preguntando aquí entonces lo que voy a hacer es en realidad lo que tengo que
hacer es conservar este registro.
Si si si el registro del paciente 8 lo que te va a hacer es conservarlo.
Pero lo que vamos a hacer es directamente vamos a buscarlo por el contrario entonces sí si el paciente
es distinto de 8 es decir si el turno de este no es del paciente 8 entonces lo que voy a hacer es borrar
este registro.
Voy a hacer un delete from arroba turnos Wer ideé sea igual
arroba y entonces lo que hacemos aquí es borrar ese registro que no pertenece al al paciente.
8 estamos borrando exactamente ese registro.
Por qué estamos accediendo por la ELA por el Identity del campo Heydi de la tabla temporal únicamente
ese registro.
Bueno y si es del paciente 8 no hacemos nada así que esto en principio ya estaría bien y lo que hace
es continuar con el Weyl hasta llegar al final y cuando termina sale.
Entonces vamos a realizar un selector aquí debajo de la tabla temporal
en turnos y vamos a ejecutar todo.
Ahora que sucede me dice que tengo que declarar la variable de turno me equivoqué acá.
Ahora si vamos a ejecutar y ahí me devolvió el resultado fíjense que me dejó y de paciente 8 y me dejó
el 9 vamos a saber por qué vamos a por qué hizo esto.
Fijense porque lo que está pasando aquí es que como yo estoy borrando registros de la tabla cuando vuelva
a iterar y realiza alcahuetas nuevamente la cantidad de registros es menor.
Entonces ya no llega a esa cantidad de registros que tiene que recorrer.
Entonces lo que vamos a hacer aquí vamos a declarar otra variable más que va a ser el total vamos a
colocar total de tipo entero y le vamos a asignar
al valor le vamos a asignar esta misma este mismo su cuadri es global después lo vamos a reemplazar
aquí abajo por la variable aquí le vamos a colocar total.
Entonces ahora sí ahora no vamos a tener ese inconveniente que tuvimos antes vamos a ejecutarlo nuevamente
a ver si así funciona.
Y fíjense ahora si me dejó los registros correspondientes al paciente ocho bien lo que vamos a hacer
ahora es seleccionar seleccionar
todos los registros de la tabla paciente si vamos a colocarle un alias y lo que vamos a hacer aquí le
vamos a colocar un INER Yong con la tabla temporal que estuvimos filtrando dentro del bucle Weyl aquí
le vamos a colocar la tabla turnos que vamos a perder un alias y lo vamos a conectar por los campos
que tiene el que tiene esa tabla que es de paciente
y lo vamos a conectar con el campo de paciente de la tabla paciente.
Ahí está entonces vamos a ejecutar vamos a ejecutar todos los scripts
me faltó el on perfecto así vamos a ejecutar todo el script y vamos a ver que retorna fíjense hoy retorna
el total de la tabla pacientes seguí conectado por la tabla temporal y me devuelve únicamente el paciente
8 con todos sus datos.
Está bien entonces correcto.
Fíjense lo que hicimos aquí es alivianar un poco el Selex principal en este caso el Cele que es muy
muy pequeño no nos insume muchos recursos pero en determinado momento de la consulta se puede hacer
muy grande y lo que hacemos con esto es realizar un niño Yeung con una tabla temporal más pequeña más
reducida.
Si en vez de estar haciendo una inmersión con la tabla de turnos que puede puede tener muchos registros
entonces lo que hace eso es afectar bastante la performance.
Con esto lo que estamos haciendo es justamente lo contrario es mejorar la performance y obtener un resultado
mucho más rápido.