• Viernes 8 de Noviembre de 2024, 21:46

Autor Tema:  actualizar tablas....  (Leído 1272 veces)

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
actualizar tablas....
« en: Martes 24 de Febrero de 2009, 16:59 »
0
buenas a todos....

les expongo mi dilema :( ...

en estos momentos me encuentro desarrollando un sp para actualizar dos tablas de las mismas tablas  :mellow: ..

el chiste es el siguiente estoy desarrolando un programa para el control de la nomina por periodos de mes....

las tablas son ntem y ntemd

en ntem se guardan los proncipales en donde esta el idtercero... basico.... en fin

en ntemd estan los detalles como son horas extras..prestamos y sus valores respectivos....

la idea es que para que el contador no vuelva a digitar lo mismo cada quincena el programa lea los datos del periodo anterior y los replique en el
nuevo periodo...

ya logre que replicara las cabeceras pero al replicar los detalles se me vuelve loco ...

Código: SQL
  1.  
  2. DECLARE @cnstrae VARCHAR(17)
  3. SELECT top 1 @cnstrae=cnspago FROM nper WHERE cnspago<>'0100000023'
  4. ORDER BY 1 DESC   ----0100000023
  5.  
  6. INSERT INTO ntem (idtercero,cnspago,basico,fechadocumento,usuario,//aca inserto las cabeceras y no hay problema
  7. equipoadiciono,total,ingreso,egreso,estado)
  8. SELECT idtercero,'0100000023',basico,getdate(),usuario,
  9. host_name(),total,0,0,'Activo' FROM ntem AS a  WHERE a.cnspago=@cnstrae
  10. INSERT INTO ntemd (codconcepto,tipo,valor,idtem)                                          
  11. SELECT  b.codconcepto,b.tipo,0,c.idtem FROM ntem AS a INNER JOIN ntemd AS b
  12. ON a.idtem= b.idtem LEFT JOIN ntem AS c ON a.cnspago <> c.cnspago --and
  13. WHERE a.cnspago='0100000022' AND c.cnspago='0100000023'
  14.  
  15.  
  16.  

al ingresar los detalles lo que sucede es que coge todos los detalles del periodo 01000000022 osea si esta asi

Código: Text
  1. J
  2. orge        Andres       Carlos   //masters
  3.  
  4. 1                 3                4      //details
  5. 2
  6.  
  7. la replica queda asi
  8.  
  9. Jorge        Andres       Carlos   //masters
  10.  
  11. 1                 1                1      //details
  12. 2                 2                2
  13. 3                 3                3
  14. 4                 4                4
  15.  
cuaquier comentario sera bien recibido...

de antemano gracias por su atencion....
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: actualizar tablas....
« Respuesta #1 en: Martes 24 de Febrero de 2009, 18:07 »
0
Buenas por si algo ya pude sacarlo...

me queme la cabeza pensando cosas milagrosas y la solucion era algo sencillo  :P ..

eso de ser novato...

asi queda el scrip por si alguna cosa

Código: SQL
  1.  
  2. DECLARE @cnstrae VARCHAR(17)
  3. SELECT top 1 @cnstrae=cnspago FROM nper WHERE cnspago<>'0100000023'
  4. ORDER BY 1 DESC   ----0100000023
  5.  
  6. INSERT INTO ntem (idtercero,cnspago,basico,fechadocumento,usuario,//aca inserto las cabeceras y no hay problema
  7. equipoadiciono,total,ingreso,egreso,estado)
  8. SELECT idtercero,'0100000023',basico,getdate(),usuario,
  9. host_name(),total,0,0,'Activo' FROM ntem AS a  WHERE a.cnspago=@cnstrae
  10. INSERT INTO ntemd (codconcepto,tipo,valor,idtem)                                          
  11. SELECT  b.codconcepto,b.tipo,0,c.idtem FROM ntem AS a INNER JOIN ntemd AS b
  12. ON a.idtem= b.idtem LEFT JOIN ntem AS c ON a.cnspago <> c.cnspago AND a.idtercero = c.idtercero
  13. WHERE a.cnspago='0100000022' AND c.cnspago='0100000023'
  14.  
  15.  
  16.  
  17.  

era ovio y no se me habia pasado por la cabeza simplemente colocar que fueran iguales los terceros :wub: ...

gracias..........
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]