Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2010, 14:39
_RiCaR_
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 14 años
Puntos: 0
Pregunta Autogenerar id

hola, necesito ayuda con el siguiente codigo:

Código PHP:
DELIMITER $$

DROP PROCEDURE IF EXISTS `bdcpago`.`insertar_alumno`$$

CREATE DEFINER=`root`@`localhostPROCEDURE `insertar_alumno`(nom varchar(20), apat varchar(20),
 
amat varchar(20), cg char(2), domi varchar(45), email varchar(45), tel char(15), fnac datecodben char(2))

   
BEGIN

    
declare p char(2);
    declare 
id char(5);
        
    
select count(codgradointo p from alumno where codgrado=cg;
        
    
set id=(select concat(p,right(('00',p+1),3)));

    
insert into alumno values(id,nom,apat,amat,cgdomi,email,tel,fnac,codben);

    
END$$

DELIMITER 
El código es para ingresar datos en la tabla alumno:

Código PHP:
CREATE TABLE `alumno` (
  `
codaluchar(6COLLATE latin1_general_ci NOT NULL,
  `
nombrevarchar(20COLLATE latin1_general_ci DEFAULT NULL,
  `
apatvarchar(20COLLATE latin1_general_ci DEFAULT NULL,
  `
amatvarchar(20COLLATE latin1_general_ci DEFAULT NULL,
  `
codgradochar(2COLLATE latin1_general_ci DEFAULT NULL,
  `
domiciliovarchar(45COLLATE latin1_general_ci DEFAULT NULL,
  `
emailvarchar(45COLLATE latin1_general_ci DEFAULT NULL,
  `
telefchar(15COLLATE latin1_general_ci DEFAULT NULL,
  `
fechanacdate DEFAULT NULL,
  `
codbenchar(2COLLATE latin1_general_ci DEFAULT NULL,
  
PRIMARY KEY (`codalu`)


Mi problema es que quiero autogenerar el codalu(codigo del alumno) a partir de la cantidad de alumnos por aula y nivel. Todo eso lo cuento por codgrado:

- codgrado - | - grado -- | -- nivel
01 ------- | --- 1 ---- | ---- 1 ----
02 ------- | --- 2 ---- | ---- 1 ----
03 ------- | --- 3 ---- | ---- 1 ----
10 ------- | --- 4 ---- | ---- 2 ----
11 ------- | --- 5 ---- | ---- 2 ----

yo ingreso el codgrado y debe arrojar el codigo asi:

codgrado: 11 o sea grado: 5 nivel: 2 (2=secundaria) ejemplo de codigo 52001
grado: 4 nivel: 1 (1=primaria) ejemplo de codigo 41001

y el codigo debe incrementar a medida que van ingresando alumnos, otro de los problemas es que cuando llega el 52009 y quiero ingresar el 52010 tambien sale un error. o por ejemplo cuando el codgrado es null, tambien sale un error, espero me puedan ayudar.


por ahora la consulta me arroja el siguiente error:

Código PHP:
Error Code 1241
Operand should contain 1 column
(s)
(
0 ms taken