09-11-2023, 04:55 PM
hola francisco, retomando python y sql.
tabla1-> asignatur: codigoAsig, nombresC, nombre, nPeriodos, nomProfesor
codisgoAsig(ee111), nombresC(Enfermeria), nombre(auxiliar 1), nPeriodos(2), nomProfesor(Jose 1)
tabla2-> malla: nomCar1, nomAlu1, listaNomAsig2
nomCar1(Enfermeria), nomAlu1(Maria 1), listaNomAsig2(ee111 - auxiliar 1)
Lo que debe hacer:
Selecciono de un combobox1 una carrera ejemplo "Enfermeria", en el
otro combobox2 selecciono "Maria 1" (que pertenece a enfermeria).
luego hago click en un command button1 que muestra en listbox1
los posibles ramos que debo tomar (para Enfermeria), luego
hago click en command button2 de listbox1 pasa a listbox2(donde
queda el ramo tomado) en el listbox2 muestra el ramo
tomado (para Enfermeria).
Problema 1: Mi consulta sql11Z muestra en el listbox1 los ramos de
todas las carreras (enfermeria, medicina, psicologia y otros).
Y deberia solo mostrar los ramos de enfermeria
En listbox2 mi consulta sqlZZ2 muestra el ramo tomado
az=seleccionZ.get()#combobox1 ejemplo enfermeria
bz=seleccion2Z.get()#combobox2 ejemplo Maria 1 (que pertenece a enfermeria)
Aqui lleno listbox2:
sqlZZ2 = "SELECT listaNomAsig2 FROM malla \
WHERE nomCar1='{}' and nomAlu1='{}';" \
.format(az, bz)
################################################################
################################################################
El codigo sql11Z que escribo a continuacion.
Llena listbox1:
Este es el problema(sql11Z)!!! muestra los ramos de todas las carreras
(Enfermeria(ee222 - auxiliar 2, menos el ramo que tomé, que es ee111 - auxiliar 1),
en medicina(muestra todos), psicologia(muestra todos).
Osea No muestra el ramo tomado.
En listbox2 muestra (ee111 - auxiliar 1)Eso lo hace bien el sqlZZ2 de listbox2
Aqui sql11Z es el problema descrito anteriormente
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomAlu1='"+(bz)+"'"
sql11Z='''SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomAlu1=("%s")''' % (bz)
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomAlu1 LIKE '%"+bz+"%';"
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur \
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomCar1='{}' and nomAlu1='{}';" \
.format(az, bz)
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur \
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomCar1='{}' and nomAlu1='{}';" \
.format(seleccionZ.get(), seleccion2Z.get())
############################################################################
Con este codigo sql11Z que escribo a continuacion.
Muestra bien solo enfermeria.
Cuando selecciono otra carrera(ejemplo medicina)
muestra los ramos que no tome de enfermeria en el listbox1 (eso esta mal),
pero no muestra los ramos de medicina que ya tomé en el listbox1,
en el listbox2 muestra los ramos que si tome de medicina.
el sql11Z no muestra los ramos de otras carreras que el alumnoX no ha tomado de
las otras carreras(ejemplo psicologia),
listbox2 muestra bien los ramos tomados del sqlZZ2.
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla"
sql11Z="SELECT concat(codigoAsig,' - ',nombre) \
FROM asignatur LEFT JOIN malla ON \
concat(codigoAsig,' - ',nombre) = listaNomAsig2 \
WHERE malla.listaNomAsig2 IS NULL"
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) \
FROM asignatur \
WHERE CONCAT(codigoAsig,' - ',nombre) NOT IN\
(SELECT listaNomAsig2 FROM malla)"
sql11Z="SELECT DISTINCT CONCAT(codigoAsig,' - ',nombre) \
FROM asignatur \
EXCEPT SELECT listaNomAsig2 FROM malla;"
tabla1-> asignatur: codigoAsig, nombresC, nombre, nPeriodos, nomProfesor
codisgoAsig(ee111), nombresC(Enfermeria), nombre(auxiliar 1), nPeriodos(2), nomProfesor(Jose 1)
tabla2-> malla: nomCar1, nomAlu1, listaNomAsig2
nomCar1(Enfermeria), nomAlu1(Maria 1), listaNomAsig2(ee111 - auxiliar 1)
Lo que debe hacer:
Selecciono de un combobox1 una carrera ejemplo "Enfermeria", en el
otro combobox2 selecciono "Maria 1" (que pertenece a enfermeria).
luego hago click en un command button1 que muestra en listbox1
los posibles ramos que debo tomar (para Enfermeria), luego
hago click en command button2 de listbox1 pasa a listbox2(donde
queda el ramo tomado) en el listbox2 muestra el ramo
tomado (para Enfermeria).
Problema 1: Mi consulta sql11Z muestra en el listbox1 los ramos de
todas las carreras (enfermeria, medicina, psicologia y otros).
Y deberia solo mostrar los ramos de enfermeria
En listbox2 mi consulta sqlZZ2 muestra el ramo tomado
az=seleccionZ.get()#combobox1 ejemplo enfermeria
bz=seleccion2Z.get()#combobox2 ejemplo Maria 1 (que pertenece a enfermeria)
Aqui lleno listbox2:
sqlZZ2 = "SELECT listaNomAsig2 FROM malla \
WHERE nomCar1='{}' and nomAlu1='{}';" \
.format(az, bz)
################################################################
################################################################
El codigo sql11Z que escribo a continuacion.
Llena listbox1:
Este es el problema(sql11Z)!!! muestra los ramos de todas las carreras
(Enfermeria(ee222 - auxiliar 2, menos el ramo que tomé, que es ee111 - auxiliar 1),
en medicina(muestra todos), psicologia(muestra todos).
Osea No muestra el ramo tomado.
En listbox2 muestra (ee111 - auxiliar 1)Eso lo hace bien el sqlZZ2 de listbox2
Aqui sql11Z es el problema descrito anteriormente
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomAlu1='"+(bz)+"'"
sql11Z='''SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomAlu1=("%s")''' % (bz)
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomAlu1 LIKE '%"+bz+"%';"
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur \
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomCar1='{}' and nomAlu1='{}';" \
.format(az, bz)
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur \
EXCEPT SELECT listaNomAsig2 FROM malla \
WHERE nomCar1='{}' and nomAlu1='{}';" \
.format(seleccionZ.get(), seleccion2Z.get())
############################################################################
Con este codigo sql11Z que escribo a continuacion.
Muestra bien solo enfermeria.
Cuando selecciono otra carrera(ejemplo medicina)
muestra los ramos que no tome de enfermeria en el listbox1 (eso esta mal),
pero no muestra los ramos de medicina que ya tomé en el listbox1,
en el listbox2 muestra los ramos que si tome de medicina.
el sql11Z no muestra los ramos de otras carreras que el alumnoX no ha tomado de
las otras carreras(ejemplo psicologia),
listbox2 muestra bien los ramos tomados del sqlZZ2.
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) FROM asignatur\
EXCEPT SELECT listaNomAsig2 FROM malla"
sql11Z="SELECT concat(codigoAsig,' - ',nombre) \
FROM asignatur LEFT JOIN malla ON \
concat(codigoAsig,' - ',nombre) = listaNomAsig2 \
WHERE malla.listaNomAsig2 IS NULL"
sql11Z="SELECT CONCAT(codigoAsig,' - ',nombre) \
FROM asignatur \
WHERE CONCAT(codigoAsig,' - ',nombre) NOT IN\
(SELECT listaNomAsig2 FROM malla)"
sql11Z="SELECT DISTINCT CONCAT(codigoAsig,' - ',nombre) \
FROM asignatur \
EXCEPT SELECT listaNomAsig2 FROM malla;"