elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 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 ... 96
141  Programación / Bases de Datos / Re: Ayuda con Consulta. en: 26 Abril 2010, 04:27 am
Sip asi se resuelve royer pero tendrias que hacerle un ligero cambio a tu consulta SQL para que funcione si haces eso  ;)

O tambien puedes tambien hacer esto:

Código
  1. SELECT k.fechacalif, a.apellidos, a.nombres AS nombreAlumno, m.materia AS nombreMateria, ifnull( k.calif1A, 'NO CALIFICADO') AS Materia FROM materias m LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria JOIN alumnos a ON a.matricula = 100 AND k.calif1A IS NULL;
  2.  
  3.  

Sustituyendo la matricula al final (la que apunta a alumnos) por el numero de Matricula del alumno que NO tiene registros en la tabla Kardex.
142  Programación / Bases de Datos / Re: Ayuda con Consulta. en: 26 Abril 2010, 04:04 am
Para los que no se enteran (y por si le pasa a alguien vamos  :rolleyes:)

Royer me envio la muestra de sus 3 tablas por MP (protegiendo sus datos al acceso publico esta en su derecho  ;) ) y bueno, resulta ser que los datos que el quiere sacar existen en la Tabla Alumnos y la tabla Materias pero no tienen ningun registro en Kardex  ;)  (Solo de los alumnos que el quiere sacar y les pasa esto). Por lo que le respondi:

Royer me aclaraste mejor ahora  ;-)  entonces el alumno que NO tiene ningun registro en la tabla Kardex ... hay es que esta tu problema chico  :rolleyes:

Mira agregue un usuario extra a la tabla Alumnos:

Código
  1.  
  2. mysql> SELECT * FROM alumnos;
  3. +------+-----------+---------+-----------+---------+--------------+-------+--------+-------+
  4. | id   | matricula | nombres | apellidos | carrera | fechaingreso | turno | grupo  | salon |
  5. +------+-----------+---------+-----------+---------+--------------+-------+--------+-------+
  6. |    6 |       919 | PEPE    | TONO      | PREPA   | 0000-00-00   | TARDE | GRUPO1 |     1 |
  7. |    7 |       212 | PANCHO  | PEREZ     | PREPA   | 0000-00-00   | TARDE | GRUPO2 |     1 |
  8. |    9 |       100 | MARIA   | LOPEZ     | NULL    | NULL         | TARDE | GRUPO1 |     1 |
  9. +------+-----------+---------+-----------+---------+--------------+-------+--------+-------+
  10.  
  11.  
  12.  

Pero no le agregue absolutamente nada en Kardex a este nuevo usuario (QUe es MARIA LOPEZ):

Código
  1.  
  2. mysql> SELECT * FROM kardex;
  3. +------+-----------+-------------+-------------+---------------+---------+------------+
  4. | id   | matricula | tetramestre | materia     | codigomateria | calif1A | fechacalif |
  5. +------+-----------+-------------+-------------+---------------+---------+------------+
  6. |    6 |       919 | 1           | INGLES I    |            10 |      90 | 2010-10-20 |
  7. |    6 |       919 | 1           | MATEMATICAS |            11 |    NULL | 2010-10-20 |
  8. |    7 |       212 | 1           | INGLES I    |            10 |      88 | 2010-10-20 |
  9. |    7 |       212 | 1           | MATEMATICAS |            11 |    NULL | 2010-10-20 |
  10. |    8 |       818 | 1           | MATEMATICAS |            11 |    NULL | 2010-09-20 |
  11. |    8 |       818 | 1           | INGLES I    |            10 |    NULL | 2010-09-20 |
  12. +------+-----------+-------------+-------------+---------------+---------+------------+
  13. 6 ROWS IN SET (0.00 sec)
  14.  
  15.  

Ahora hago tu magica consult a a MARIA  y.....

Código
  1.  
  2. mysql> SELECT k.fechacalif, a.apellidos, a.nombres AS nombreAlumno, m.materia AS nombreMateria, ifnull( k.calif1A, 'NO CALIFICADO') AS Materia FROM materias m LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula WHERE k.matricula = 100 OR k.matricula IS NULL;
  3. +------------+-----------+--------------+---------------------------+---------------+
  4. | fechacalif | apellidos | nombreAlumno | nombreMateria             | Materia       |
  5. +------------+-----------+--------------+---------------------------+---------------+
  6. | NULL       | NULL      | NULL         | taller de redaccion I     | NO CALIFICADO |
  7. | NULL       | NULL      | NULL         | metodologia de la lectura | NO CALIFICADO |
  8. | NULL       | NULL      | NULL         | historia moderna          | NO CALIFICADO |
  9. +------------+-----------+--------------+---------------------------+---------------+
  10.  
  11.  

Bingo  ;-)

Ahora quieres saber porque ocurrio esto??? Pues precisamente chico porque MARIA solo existe en la tabla Alumnos y Materias  ;)  sin embargo tu haces la comparaciones con Kardex.. pero como esta alumna NO tiene nada en Kardex... como va a retonarte las calificaciones que se reflejan en la tabla Kardex???? Si no existen datos de ningun tipo de ella en Kardex???? Sin embargo si existen datos de ella en la tabla Materia y Alumnos... Recuerdate que el campo calif1A esta en la tabla Kardex y es ese campo o sea mira tu consulta SQL dice:

Citar
m.codigomateria = k.codigomateria

O sea las materias que esten en la tabla Kardex que concuerden con las materias que esten en la tabla Materias... pero si tu no tienes registros de algun alumno en la tabla Kardex... como quieres que te retorne las materias que estan ahi dentro???

O sea ya que solamente tienes datos en la tabla Alumnos y Materias para el caso mostrado tu comparacion de tu consulta dice:

Citar
eft outer join alumnos a on k.matricula = a.matricula

Pero... k.matricula pertenece a la tabla Kardex no??? y si Kardex no tiene registros aca para dicho alumno... que va a retornarte para la calificacion??
Nada (Que es lo que esta pasando).

Tendras que agregar 1 campo extra en la tabla Materias para que puedas relacionar las materias con alumnos
sin que estas esten obligatoriamente en Kardex... o registrar datos en la tabla Kardex para todos los alumnos aunque el valor
sea null.

 :D
143  Programación / Bases de Datos / Re: Ayuda con Consulta. en: 26 Abril 2010, 01:54 am
Yo te entendi perfectamente  ;)  intentas decirme que hay 3 materias que no se presentan en pantalla porque tienen valores NULL pero cuando tienen valor real asignado si se presentan en pantalla... de lo contrario no  :P

Te agradeceria si me mostrases entonces, en las 3 tablas en cuestion que valores le corresponden a estos 2 alumnos para yo tener una guia mejor del asunto.

144  Programación / Bases de Datos / Re: Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado en: 26 Abril 2010, 01:43 am
Te recomiendo que investigues como se manejan los HANDLER en MySQL para captar las Excepciones. A lo mejor esto te puede ayudar:

Código
  1.  
  2. CREATE PROCEDURE sp_inserta(id_usuario CHAR(20))
  3. BEGIN
  4. DECLARE continue handler FOR sqlstate '23000' SET @x = 1;
  5. INSERT INTO ejemplo VALUES(id_usuario);
  6. IF @x = 1 THEN SELECT concat('Error llave duplicada');
  7. END IF;
  8. END;
  9. //
  10.  
  11.  
145  Programación / Bases de Datos / Re: Ayuda con Consulta. en: 25 Abril 2010, 20:55 pm
Unos puntitos.

Acorde a los datos que estas solicitando, no necesitas usar un JOIN con las 3 tablas.... de hecho con 2 tablas es mas que suficiente (Para este caso).  :rolleyes:  porque lo digo??? porque tienes el campo materia dentro de la tabla Kardex, que asumo se relaciona en ese mismo campo con la tabla Materias  y puesto que la relacion posee el mismo valor... y es el unico campo que referencias de esta tabla en tu consulta SQL... felizmente puedes descartar usar esta tabla en tu consulta SQL, y sencillamente hacer el JOIN con las tablas Kardex y Alumnos, obteniendo el campo materia de la tabla Kardex.

Otra cosita, ten muy en claro el tamanio (espacio) que ocupan los tipos de datos, cuidado con esos tipos de datos que leo tipo bigint en un campo de matricula... y cuidado con el almacenamiento de los varchar que veo hasta 255 cuando apenas vas a guardar algo que a lo maximo ocuparia 50 caracteres.

Ten en cuenta que tu consulta SQL esta buscando la nota de 1 sola persona a la vez.. o donde su matricula sea nula

Te comento que he recreado las tablas que tienes.... con los siguientes datos:

Código
  1.  
  2. mysql> SELECT * FROM kardex;                                                                                                        +------+-----------+-------------+--------------+---------------+                                                                  
  3. | id   | matricula | materia     | calificacion | codigomateria |                                                                  
  4. +------+-----------+-------------+--------------+---------------+
  5. |    1 |       200 | matematica  |           80 | matematica    |
  6. |    2 |       300 | lenguaje    |         NULL | lenguaje      |
  7. |    3 |       400 | historia    |           70 | historia      |
  8. |    4 |       500 | matematicax |         NULL | matematicax   |
  9. |    5 |       600 | lenguajex   |           87 | lenguajex     |
  10. +------+-----------+-------------+--------------+---------------+
  11. 5 ROWS IN SET (0.00 sec)
  12.  
  13. mysql> SELECT * FROM alumnos;
  14. +------+-----------+---------+-----------+--------------+
  15. | id   | matricula | nombres | apellidos | fechaingreso |
  16. +------+-----------+---------+-----------+--------------+
  17. |    1 |       200 | Jose    | Perez     | NULL         |
  18. |    2 |       300 | Mario   | Lopez     | NULL         |
  19. |    3 |       400 | Gloria  | Mar       | NULL         |
  20. |    4 |      NULL | Pepe    | Martinez  | NULL         |
  21. |    5 |      NULL | Carlos  | Manuel    | NULL         |
  22. +------+-----------+---------+-----------+--------------+
  23. 5 ROWS IN SET (0.00 sec)
  24.  
  25.  

Usando como modelo tu consulta SQL, y me aparecen perfectamente los datos solicitados (La unica diferencia es que aca obvio
usar la tercera tabla Materias, pero luego es lo mismo):

Código
  1.  
  2. mysql> SELECT a.apellidos, a.nombres AS nombreAlumno, k.materia AS nombreMateria, IF( k.calificacion IS NULL, 'NO CALIFICADO', k.calificacion) AS Califica FROM kardex k LEFT JOIN alumnos a ON k.matricula = a.matricula WHERE a.matricula = 300 OR a.matricula IS NULL;                                                                                                                                  
  3. +-----------+--------------+---------------+---------------+                                                                        
  4. | apellidos | nombreAlumno | nombreMateria | Califica      |                                                                        
  5. +-----------+--------------+---------------+---------------+                                                                        
  6. | Lopez     | Mario        | lenguaje      | NO CALIFICADO |                                                                        
  7. | NULL      | NULL         | matematicax   | NO CALIFICADO |                                                                        
  8. | NULL      | NULL         | lenguajex     | 87            |                                                                        
  9. +-----------+--------------+---------------+---------------+                                                                        
  10. 3 ROWS IN SET (0.00 sec)    
  11.  
  12. mysql> SELECT a.apellidos, a.nombres AS nombreAlumno, k.materia AS nombreMateria, IF( k.calificacion IS NULL, 'NO CALIFICADO', k.calificacion) AS Califica FROM kardex k LEFT JOIN alumnos a ON k.matricula = a.matricula WHERE a.matricula = 200 OR a.matricula IS NULL;                                                                                                                                  
  13. +-----------+--------------+---------------+---------------+                                                                        
  14. | apellidos | nombreAlumno | nombreMateria | Califica      |                                                                        
  15. +-----------+--------------+---------------+---------------+                                                                        
  16. | Perez     | Jose         | matematica    | 80            |                                                                        
  17. | NULL      | NULL         | matematicax   | NO CALIFICADO |                                                                        
  18. | NULL      | NULL         | lenguajex     | 87            |                                                                        
  19. +-----------+--------------+---------------+---------------+                                                                        
  20. 3 ROWS IN SET (0.00 sec)                            
  21.  
  22.  

Podrias publicar aca que valores en ambas tablas o en las 3 tablas si todavia quieres continuar usando los JOINS con las 3. Que valores tienen ambos alumnos en las 3 o 2 tablas aca...
146  Programación / Bases de Datos / Re: Ayuda con Consulta. en: 25 Abril 2010, 01:24 am
Entonces tu problema literalmente es... que si un alumno tiene materias con calificacion y el otro alumno en esas mismas materias no tiene ninguna calificacion... entonces las del segundo alumno no se muestran en pantalla???  :rolleyes:

Espero no sea mucho pedir pero... podrias colocar aca un ejemplo de los campos de las 2 tablas que estas usando para hacer tus JOINES   ;)  algo asi tipo:

'Tengo 2 tablas, la primera tiene los siguientes campos : '

tabla1
alumnos,
matricula,
fecha,
materia


tabla2
matricula,
materia


Aunque creo tu problema (si es lo que te pregunte inicialmente) estaria aqui:

Citar
IFNULL( k.calif1A, 'NO CALIFICADO' )

Porque ahi dices si calificacion tiene un valor NULL retorname 'No calificado' bien perfecto.. ahora que pasa, estas haciendo 1 JOIN de 2 tablas yo no conozco las estructuras de las 2 tablas (Por eso te pido una demostracion) pero, que pasa cuando 2 campos en ambas tablas se comparan y uno tiene valor no nulo sin embargo el otro si tiene un valor nulo??? Tu unica condicion es que cuando calificacion sea NULL retorne 'NO CALIFICADO' pero para que esto se cumpla... ambos campos comparados deben tener valor NULL, lo que si podrias intentar completar el IF con algo tipo:

IF(k.calif1A IS NULL, 'NO CALIFICA', k.califi1A)

O sea si uno de los valores es Nulo 'no califica' de lo contrario pues tirame el valor que existe. Pero me puedo equivocar, no conozco la estructura de las tablas... solo estoy ofreciendo un estimado acorde a lo que veo.

 :P

147  Programación / Scripting / Re: Unas cuantas preguntas sobre bash en: 22 Abril 2010, 22:14 pm
Citar
#!/bin/bash

if [ "1.6.0_0" = `java -version` ]
then
clear
echo "esta instalado"
fi

Entonces... '1.6.0_0' es un comando existente en tu sistema? no deberia ser:


if [ "`java -version`" =  "1.6.0_0"  ]

Ya que lo que te interesa es obtener la version de Java y compararla a algun valor especificado por ti  ;)

Otra cosita a considerar:

Citar
elif [ $opc = "6" ]

Tienes que ver las cosas como Bash las ve.... suponte que la variable $opc=6 bien perfecto, la inicializaste con ese valor quedando mas o menos asi:

opc=6

if [ $opc = "6" ]

Esto dara error... porque Bash ve:

if [ 6 = "6" ]

Entonces.. puedes comparar un entero a un caracter???? No. Podrias resolverlo con:

if [ "$opc" = "6" ]

148  Programación / Bases de Datos / Re: Ayuda con procedimiento. Simular array en text en: 22 Abril 2010, 21:50 pm
No he podido ejecutar tu procedimiento (el trabajo me tiene a tope).

Pero mirandolo...sino me equivoco.. tu duda esta en esta indicacion:

SET comas = instr(ingreso,',');

Fijate que esta leyendo hasta donde vea una coma (,) y aca tu:

call ee('e,a,d,g');//

Donde termina la coma??? en la letra d  ahora.. intenta despues de la letra g colocar una coma(,) que quede asi:

call ee('e,a,d,g,');//

Y dime si funciona... no lo he probado, pero es lo unico que visualmente se me aclara un poco  :rolleyes:
149  Foros Generales / Sugerencias y dudas sobre el Foro / Re: usuario "sthefano02" mandando spam en: 22 Abril 2010, 05:15 am
Sip lo mismo de este lado   :P   :P   :P 
150  Sistemas Operativos / GNU/Linux / Re: ayuda en linux en: 22 Abril 2010, 03:09 am
Hola.

Si con la indicacion previamente de Vertex tampoco te sale un dispositivo que indique nada de la Wifi.... te costara cambiar de driver  :xD  ese driver no crea la interface en tu maquina.

Busque para tu modelo de tarjeta especifico que driver usan y me encontre que usa uno llamado  wl  te lo descargas de aca:

http://www.broadcom.com/support/802.11/linux_sta.php

Y recuerda para instalarlo, necesitas tener las fuentes (kernel-source) o kernel-headers de tu kernel actual.

Lo primero que debes hacer despues que instales el driver anterior, es apagar los modulos actuales:

bash$ sudo rmmod  ssb
bash$ sudo rmmod  b43

Luego lo agregas a blacklist:

bash$ sudo  echo "blacklist  b43"  >> /etc/modprobe.d/blacklist

Carga el nuevo modulo:

bash$ sudo modprobe  wl

Y reporta aca nuevamente que te dice:

bash$ sudo  ifconfig  -a

O

bash$  cat  /proc/net/wireless
Páginas: 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 ... 96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines