Lunes 23 de Diciembre de 2024, 17:16
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Bases de Datos
»
SQL Server
(Moderador:
ElNapster
) »
actualizar tablas....
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: actualizar tablas.... (Leído 1289 veces)
AnimaSubtilis
Miembro MUY activo
Mensajes: 172
Nacionalidad:
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
..
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
DECLARE
@cnstrae
VARCHAR
(
17
)
SELECT
top
1
@cnstrae
=
cnspago
FROM
nper
WHERE
cnspago
<>
'0100000023'
ORDER
BY
1
DESC
----0100000023
INSERT
INTO
ntem
(
idtercero
,
cnspago
,
basico
,
fechadocumento
,
usuario
,//
aca inserto las cabeceras y no hay problema
equipoadiciono
,
total
,
ingreso
,
egreso
,
estado
)
SELECT
idtercero
,
'0100000023'
,
basico
,
getdate
(
)
,
usuario
,
host_name
(
)
,
total
,
0
,
0
,
'Activo'
FROM
ntem
AS
a
WHERE
a
.
cnspago
=
@cnstrae
INSERT
INTO
ntemd
(
codconcepto
,
tipo
,
valor
,
idtem
)
SELECT
b
.
codconcepto
,
b
.
tipo
,
0
,
c
.
idtem
FROM
ntem
AS
a
INNER
JOIN
ntemd
AS
b
ON
a
.
idtem
=
b
.
idtem
LEFT
JOIN
ntem
AS
c
ON
a
.
cnspago
<>
c
.
cnspago
--and
WHERE
a
.
cnspago
=
'0100000022'
AND
c
.
cnspago
=
'0100000023'
al ingresar los detalles lo que sucede es que coge todos los detalles del periodo 01000000022 osea si esta asi
Código: Text
J
orge Andres Carlos //masters
1 3 4 //details
2
la replica queda asi
Jorge Andres Carlos //masters
1 1 1 //details
2 2 2
3 3 3
4 4 4
cuaquier comentario sera bien recibido...
de antemano gracias por su atencion....
Tweet
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:
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
..
eso de ser novato...
asi queda el scrip por si alguna cosa
Código: SQL
DECLARE
@cnstrae
VARCHAR
(
17
)
SELECT
top
1
@cnstrae
=
cnspago
FROM
nper
WHERE
cnspago
<>
'0100000023'
ORDER
BY
1
DESC
----0100000023
INSERT
INTO
ntem
(
idtercero
,
cnspago
,
basico
,
fechadocumento
,
usuario
,//
aca inserto las cabeceras y no hay problema
equipoadiciono
,
total
,
ingreso
,
egreso
,
estado
)
SELECT
idtercero
,
'0100000023'
,
basico
,
getdate
(
)
,
usuario
,
host_name
(
)
,
total
,
0
,
0
,
'Activo'
FROM
ntem
AS
a
WHERE
a
.
cnspago
=
@cnstrae
INSERT
INTO
ntemd
(
codconcepto
,
tipo
,
valor
,
idtem
)
SELECT
b
.
codconcepto
,
b
.
tipo
,
0
,
c
.
idtem
FROM
ntem
AS
a
INNER
JOIN
ntemd
AS
b
ON
a
.
idtem
=
b
.
idtem
LEFT
JOIN
ntem
AS
c
ON
a
.
cnspago
<>
c
.
cnspago
AND
a
.
idtercero
=
c
.
idtercero
WHERE
a
.
cnspago
=
'0100000022'
AND
c
.
cnspago
=
'0100000023'
era ovio y no se me habia pasado por la cabeza simplemente colocar que fueran iguales los terceros
...
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]
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Bases de Datos
»
SQL Server
(Moderador:
ElNapster
) »
actualizar tablas....